VOICE_CALL也无法录音

在使用xposed拿到权限后,使用MediaRecorder.AudioSource.VOICE_CALL对微信视频聊天进行录音,结果录出来也没有任何声音,只有使用MediaRecorder.AudioSource.VOICE_DOWNLINK后才能录到自己的声音,请问现在双向录音规则改了吗?系统是MIUI13,已经root,api是30

系统本身的电话录音是双方都有声音的,所以按理说,是有办法可以录的

你说的对,原本系统的通话录音是可以录双方声音的。
但是从Android 10开始,谷歌为了保护用户隐私,禁止应用直接调用AudioRecord API来捕获电话通话中的音频数据。所以你使用MediaRecorder.AudioSource.VOICE_CALL无法录到对方声音是正常的。
具体来说,Android 10引入了一些限制:

  1. 不允许录制通话开始前和结束后的音频
  2. 只允许应用访问通话中用户自己说的话,而不能访问通话对方的语音
  3. 用户需要在每次通话开始时明确同意允许访问自己的语音,用户可以随时撤回此同意
    所以,要实现双向通话录音,有几个解决方案:
  4. 使用Android 9或以下的系统,这些系统不受上述限制
  5. 需用户同意,在通话开始时弹窗请求录音权限,如果用户同意则可以录音。但只能录用户自己的声音
  6. 利用Xposed等框架,hook系统API来实现双向录音。但这种方式存在一定风险,且在高版本系统可能不太稳定
  7. 其他一些非官方手段,如超级权限等,但同样存在一定风险
    所以总的来说,从Android 10开始,官方API已经没有直接的方式实现双向通话录音了。你需要权衡使用其他手段的风险,或者寻找替代方案。