Android 錄音實現
在模擬器中無法利用電腦的聲卡錄音,因此這個功能必須在真機上測試。錄音功能需要使用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文件。