You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通话录音文件中对方语音音量过低问题及相关录音代码咨询

解决通话录音中对方语音音量极低的问题

嘿,看了你的代码片段,我立刻发现几个可能导致对方语音音量极低的关键点,咱们一步步来解决:

首先,最核心的问题是音频源选择错误。你用了MediaRecorder.AudioSource.DEFAULT,这个默认源根本不是为通话场景设计的,它没法很好地捕获通话里的远端(对方)语音。Android专门提供了针对通话的音频源,赶紧换掉:

  • 优先用VOICE_CALL:这是系统专门为通话录音打造的音频源,能同时捕获你和对方的声音,效果最理想。修改这一行代码:
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
    
    如果某些设备因为厂商限制不让用这个(比如部分国产手机),就换成VOICE_COMMUNICATION——这个是为VoIP通话优化的,兼容性更强:
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
    

然后,我发现你代码里有个明显的错误:输出格式和编码器搞混了!你写的mediaRecorder.setOutputFormat(MediaRecorder.AudioEncoder.AMR_NB)完全不对,setOutputFormat要传输出格式常量,编码器得用setAudioEncoder来设置。这错误会直接导致录音异常,要么音量低要么文件损坏,赶紧改成正确的写法:

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

接下来,检查权限是否到位:

  • 确保你已经在Manifest里声明了RECORD_AUDIO权限;
  • Android 10及以上,还需要动态申请RECORD_AUDIO和READ_PHONE_STATE(针对通话场景);
  • Android 11+可能还要POST_NOTIFICATIONS权限,没有这些权限,音频源根本没法正常工作。

最后提个兼容性小技巧:不同厂商的设备对通话音频源支持不一样,如果VOICE_CALL不好使,就 fallback 到VOICE_COMMUNICATION。要是实在不行,也可以试试后期对音频文件做增益处理,但这是下策,优先解决源头问题。

你可以先改音频源和修正格式/编码器的错误,测试下效果,应该能解决大部分音量低的问题。

内容的提问来源于stack exchange,提问作者Mithun Halmare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:23:53