Android 10及以上设备能否实现通话录制?无法录制问题求助
Android 10及以上设备的通话录制问题解答
Android 10(API 29)及以上系统对通话录制有严格的权限限制,普通第三方APP没法像以前那样直接录制通话双方的声音:
- Google在Android 10中关闭了
VOICE_COMMUNICATION这类系统级音频源的访问权限,你用这个音频源只能录到设备麦克风的声音,甚至可能直接触发权限异常,根本拿不到通话的双向音频。 - 部分手机厂商(比如小米、华为)自带系统级通话录制功能,但这是厂商定制的,没有统一API给第三方APP调用。
看你贴的代码,问题就出在MediaRecorder.AudioSource.VOICE_COMMUNICATION这个音频源上,在Android 10+上已经失效了。
给你几个可行的替代思路:
- 直接用手机系统自带的通话录制功能(如果厂商支持),这是目前最靠谱的方式。
- 让用户开启通话外放,然后用麦克风录制,这种方式音质一般,但实现简单,只需把音频源改成
MIC:
recorder = MediaRecorder() recorder.setAudioSource(MediaRecorder.AudioSource.MIC) recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB) recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB) recorder.setOutputFile(path) recorder.prepare() recorder.start()
- 通过无障碍权限实现录制,但需要用户手动授予无障碍权限,逻辑也比较复杂,还可能因权限滥用被Google Play限制,谨慎使用。
内容的提问来源于stack exchange,提问作者sreejith
相关产品推荐
相关产品推荐

