在模擬器中沒法利用電腦的聲卡錄音,所以這個功能必須在真機上測試。錄音功能須要使用android.media.MediaRecorder來完成。使用MediaRecorder錄音須要經過以下6個步驟完成:java
(1)設置音頻來源(通常爲麥克風)。android
(2)設置音頻輸出格式。web
(3)設置音頻編碼方式。app
(4)設置輸出音頻的文件名。oop
(5)調用MediaRecorder類的perpare方法。測試
(6)調用MediaRecorder類的start方法開始錄音。編碼
實現錄音功能的完整代碼以下:spa
- 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文件的多少)。.net
中止錄音能夠使用MediaRecorder類的stop方法,代碼以下:code
在生成amr文件後,能夠使用MediaRecorder來播放amr文件。