我在录制电话通话时遇到了问题。我创建了一个服务并调用了 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()时会抛出recoder失败的异常。
那么,我该如何录制语音通话呢?