我在通话录音时遇到问题 我已拨打服务并致电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);
在上面的代码中,它抛出记录器在 recorder.start() 上失败的异常;
那么,如何录制语音通话呢?
一年前我也有同样的疑问AudioSource.VOICE_CALL 不适用于 android 4.0 但适用于 android 2.3
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
适用于有限的设备,它只会在不支持语音通话的设备上给出异常,因此捕获异常并重新从麦克风开始录音,这将使您在不支持的设备中保持更安全的状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)