有一个问题。 我用这种方式实现了通话录音:
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
然后,在我注意到的几个设备上测试后,三星实际上根本没有录制声音流并引发异常。 我已经改变了上面的代码,所以现在它看起来有点像:
if (Build.MANUFACTURER.toLowerCase().contains("samsung")) {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
} else {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
}
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
所以,它正在发挥作用。但它只能录制我的声音而忽略了我的对话者。 有任何想法如何解决它?