[英]record call on Android nougat 7.0
我正在使用一个简单的mediarecorder来记录呼叫,但在<牛轧糖上的设备上都可以正常工作,但是在牛轧糖中,它只记录了我这一边的通话音频。 ?
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(audiofile.getAbsolutePath());
经过一个月的关于通话记录的研究,我发现每个Android版本都喜欢MediaRecorder的类型以使其正常工作,我们不能仅将一种类型用于所有Android版本。 我正在为我的项目使用此规则,目前,该规则适用于大多数android版本。
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
callType = "VOICE_CALL";
} else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
callType = "MIC";
} else {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
callType = "VOICE_COMMUNICATION";
}
为了快速检查,您可以检查我的示例: https : //github.com/tntkhang/call-recording-master
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.