我有一个简单的安卓应用程序,可以记录通话,它在安卓6+三星设备上工作良好(都有麦克风和VOICE_COMMUNICATION)。但是,一旦三星设备更新到Nougat (例如,S7 / S7边缘)这些记录呼叫的方法失败:(麦克风只记录我的语音,而不记录对方的语音,VOICE_COMMUNICATION根本不起作用。
有人能建议一下这里可以做些什么吗?
发布于 2017-09-08 18:33:28
同样的问题。还在寻找答案。
我有一部三星s7。首先,我解锁了本机录音机(在拨号),它的工作。因此,Android 7(和三星)可以在android内部没有内部操作的情况下记录通话。但是,在同一时间,我读到,开发人员无法从更高级别获得访问录音调用。似乎只有一种方法可以实现我们的目标:修改现有的Android版本,或者在声音流到达扬声器之前捕获声音流。如果我做错了,请纠正我。
发布于 2018-12-16 13:03:02
通常对于电话录音,我们可以使用4种类型:默认,麦克风,VOICE_CALL,VOICE_COMMUNICATION。但是对于所有的,下面的3类型就足够了
麦克风、VOICE_CALL、VOICE_COMMUNICATION
基于你的手机的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版本的反应如何。
https://stackoverflow.com/questions/43473383
复制相似问题