在模擬器中無法利用電腦的聲卡錄音,因此這個功能必須在真機上測試。錄音功能需要使用android.media.MediaRecorder來完成。使用MediaRecorder錄音需要通過如下6個步驟完成:
(1)設置音頻來源(一般爲麥克風)。
(2)設置音頻輸出格式。
(3)設置音頻編碼方式。
(4)設置輸出音頻的文件名。
(5)調用MediaRecorder類的perpare方法。
(6)調用MediaRecorder類的start方法開始錄音。
實現錄音功能的完整代碼如下:
MediaRecorder mediaRecorder = new MediaRecorder();
// 第1步:設置音頻來源(MIC表示麥克風)
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//第2步:設置音頻輸出格式(默認的輸出格式)
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
//第3步:設置音頻編碼方式(默認的編碼方式)
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//創建一個臨時的音頻輸出文件
audioFile = File.createTempFile("record_", ".amr");
//第4步:指定音頻輸出文件
mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
//第5步:調用prepare方法
mediaRecorder.prepare();
//第6步:調用start方法開始錄音
mediaRecorder.start();
上面的代碼指定了一個臨時的音頻輸出文件,這就意味着每次將生成不同的音頻文件。文件名的格式是record_N.amr,其中N是整數。在錄完音後,在SD卡的根目錄會看到很多這樣的文件(由錄音的次數多少決定amr文件的多少)。
停止錄音可以使用MediaRecorder類的stop方法,代碼如下:
mediaRecorder.stop();
在生成amr文件後,可以使用MediaRecorder來播放amr文件。