繁体   English   中英

在Samsung设备上通过MIC录制电话(Android 7.0)

[英]Record a call through MIC on Samsung devices (Android 7.0)

我有简单的Android应用程序可以录制一个电话,它可以在Android 6 + Samsung设备上运行(包括MIC源和VOICE_COMMUNICATION)。 但是一旦三星设备更新为Nougat(例如S7 / S7 Edge),这些记录呼叫的方法就失败了:( MIC仅录制我的声音而不是对手的声音,而VOICE_COMMUNICATION根本不起作用。

有人可以建议在这里做些什么吗?

同样的问题。 还在寻找答案。

我有一个三星s7。 首先,我解锁了原生录音机(在拨号器中),它的工作原理。 因此,android 7(和samsung)可以记录Android内部没有内部动作的调用。 但是,与此同时,我读到开发人员无法从更高级别获得对录音电话的访问权限。 似乎只有一种方法可以实现我们的目标:修改Android的版本或在收听扬声器之前捕获声音流。 如果我错了,请修理我。

通常,对于录制电话,我们可以使用4种类型:DEFAULT,MIC,VOICE_CALL,VOICE_COMMUNICATION。 但是下面3种类型就足够了

MIC,VOICE_CALL,VOICE_COMMUNICATION

基于您的手机的Android版本将支持或不支持其中一些。

因此,要使您的应用程序与所有Android版本完美配合,我们应该使用此规则更改Android版本之后的AudioSource类型:

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";
}

我在我的应用程序中使用它,它适用于大多数设备。 它不需要添加任何C库。 检查我的示例应用程序,看看他们对专用Android版本的反应。

Github: https//github.com/tntkhang/call-recording-master

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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