我在记录呼叫时遇到了问题,我已经提供了服务并调用了BroadcastReceiver来获取呼叫状态.在收到呼叫时,在TelephonyManager.EXTRA_STATE_OFFHOOK中.我正在使用以下代码来记录通话
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setOutputFile(audiofile.getAbsolutePath());
try {
recorder.prepare();
recorder.start();
}
catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception ex)
{
ex.printStackTrace();
}
此代码工作正常并创建音频文件,但是当我收听音频文件时,我只能听我的外出语音,不会记录来电者的语音.
我用的时候
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
代替
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
在上面的代码中,它会在recoder.start()上抛出重新编码失败的异常.
那么,我该如何录制语音通话?