Android 錄音實現
阿新 • • 發佈:2019-02-13
在模擬器中無法利用電腦的音效卡錄音,因此這個功能必須在真機上測試。錄音功能需要使用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檔案。