繁体   English   中英

在Android Nougat 7.0上录制通话

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM