简单使用例子:
try {
MediaRecorder recorder = new MediaRecorder();
// recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);//通话中,对方、自己声音都会录下来
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK);//只录取扬声器、听筒声音
// recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_UPLINK);
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);//跟MIC一样,只录取麦克风声音,但扬声器太大声的话也会录到
recorder.setOutputFile(path);
// 设置录制的声音的输出格式(必须在设置声音编码格式之前设置)
recorder.setOutputFormat(MediaRecorder
.OutputFormat.AMR_NB);
// 设置声音编码的格式
recorder.setAudioEncoder(MediaRecorder
.AudioEncoder.AMR_NB);
recorder.prepare();
recorder.start();
} catch (IOException e) {
e.printStackTrace();
}
其中setAudioSource方法可选参数为,参考网址:MediaRecorder.AudioSource
录音完成后,使用
recorder.stop();
recorder.release();
recorder = null;
另外还能用AudioRecord在录音的同时对音频处理,参考AudioRecord录音与AudioTrack播放