我在录制通话时遇到问题 我已经创建了一个服务并调用了一个 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 fails 的异常;
那么,我该如何录制语音通话呢?
最佳答案
一年前我也有过同样的疑惑AudioSource.VOICE_CALL not working in android 4.0 but working in android 2.3
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 在有限的设备上工作,它只会在不支持语音通话的设备上给出异常,所以捕获异常并重新从麦克风开始录音,这将使您在不受支持的设备上更安全。
关于android - 使用 MediaRecorder 在 android 中录制语音通话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139332/