MediaRecorder之音訊錄製

2021-08-09 07:37:29 字數 2935 閱讀 7543

一 前言

在前面已經介紹過使用

mediarecorder,接下來就是看看音訊錄製的過程。

二 音訊錄製

音訊錄製步驟如下:

(1)建立mediarecorder物件例項,可以通過預設的構造方法進行建立;
(2)設定音訊**、編碼格式、編碼位率、取樣率等,分別通過(1)獲取的例項呼叫如下方法進行設定setaudiosource(一般為麥克風mic)、setaudioencoder、setaudioencodingbitrate、setaudiosamplingrate等,這些引數可以控制聲音的品質、檔案的大小,一般來說,聲音品質越大,產生的音訊檔案越大;
(3)設定輸出檔案(音訊檔案)的格式,及儲存位置分別通過(1)獲取的例項呼叫如下方法setoutputformat、setoutputfile;
(4)呼叫prepare方法做錄製前的準備工作;
(5)呼叫start、pause、stop方法控制錄製過程;
實現**如下:

public void 

startrecord()

startrecordtime = system.currenttimemillis

();stoprecordtime = -1

;filename = system.currenttimemillis

() + ".amr"

;file file = new file(path_user_audio

, filename);

// if (!file.exists()) catch (ioexception e)

// }

mrecorder = new mediarecorder();

//設定音訊源(使用麥克風錄音)

mrecorder.setaudiosource(mediarecorder.audiosource.mic

);//設定所錄製的音訊檔案的格式 amr用於移動裝置的音訊,壓縮比比較大,

// 但相對其他的壓縮格式質量比較差,由於多用於人聲,通話,效果還是很不錯的。

mrecorder.setoutputformat(mediarecorder.outputformat.amr_nb

);//設定所錄音的編碼格式

mrecorder.setaudioencoder(mediarecorder.audioencoder.amr_nb

);//設定錄製的音訊檔案的儲存位置

mrecorder.setoutputfile(file.getabsolutepath());

try catch (ioexception e)

try catch (exception e)

isnormallyrecord =true;

sendmessage(handler

, state_start_record

);isrecording = true;

}

說明

path_user_audio為音訊檔案儲存的目錄

。接下來自定義乙個介面監聽錄製的進度,如下:

/**

* 錄音狀態更改監聽

*/public inte***ce recordchangelistener

建立乙個handle物件,迴圈更新進度,如下:
/** 非同步重新整理handler物件 */

private handler handler = new handler()

switch (msg.what)

}};

上述的runnable實現如下:
private runnable runnable = new runnable() 

};

停止錄製的方法實現**如下:
public void 

stoprecord() catch (exception e) finally

}mrecorder = null;

isrecording = false;

sendmessage(handler

, state_stop_record);}

}

上述sendmessage實現如下:
private void 

sendmessage(handler handler, int what)

嗯,到這裡呼叫上面的

startrecord方法就可以開始錄製音訊了。

必要的許可權設定:
android

:name=

"android.permission.read_external_storage"

/>

android

:name=

"android.permission.write_external_storage"

/>

android

:name=

"android.permission.record_audio"

/>

android

:name=

"android.permission.modify_audio_settings"

/>

android

:name=

"android.permission.mount_unmount_filesystems"

/>

android

:name=

"android.permission.camera"

/>

何謂靡靡之音

我今天偶然看到這個問題 心想什麼是靡靡之音呢?提問出處 靡靡之音,指柔弱 悲涼的 出處 韓非子 十過 此師延之所作,與紂為靡靡之樂也。可是即便是這樣,完全還不懂得什麼是靡靡之音。然後偶爾看到一本書 這世界,原該天清地寧 有一篇的名字是 戲劇的格局與氣象 裡面分析了馬連良和楊寶森的嗓音特點,並且講了 ...

Gregorian(上帝之音)

當聽過一首好的 的時候我總是不聽的聽著,直到下一首好的出現為止。來自英倫島嶼的gregorian 教皇合唱團 又稱之為 上帝之 他們浸淫於教堂 與合生 雖然翻唱了很多流行歌曲,但是他們的風格確實最能刺透人內心的那種。gregorian和莎拉布萊曼的搭配,個人認為那是把神秘和高雅 發揮到極致的。天籟般...

如何使用 MediaRecorder錄製聲音?

先對聲音錄製有個大致的了解,需要設定聲音資料的 輸出編碼方式 輸出檔案路徑 輸出檔案格式等。有一點需要說明的是 輸出檔案格式就相當於乙個容器,具體採用什麼編碼需要指定編碼格式。編碼一樣可能輸出格式不一樣,輸出格式一樣其編碼方式可能不一樣。錄製音訊主要片段如下 mediarecorder mrec f...