在模拟器中无法利用电脑的声卡录音,因此这个功能必须在真机上测试。录音功能需要使用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();
停止录音可以使用MediaRecorder类的stop方法,代码如下:
- mediaRecorder.stop();
在生成amr文件后,可以使用MediaRecorder来播放amr文件。