三星S10、S21 Ultra等Android11+设备WebRTC回声问题技术咨询
问题对应结论与修复方案
疑问答复
- 该问题确为三星S10、S21 Ultra等机型升级Android 11后的已知硬件声学回声消除(AEC)兼容Bug:该批次机型会强制接管系统音频处理通路,即便开启WebRTC自带的软件AEC能力,也会被系统层面拦截,导致软件AEC失效。
- SDP配置异常也会触发或加重回声问题:核心为OPUS编码参数、音频采样率不匹配导致AEC的回声时延计算错误,无法正常抵消回声残留。
可落地修复方案
按优先级依次尝试即可:
- 强制禁用系统硬件AEC,完全走WebRTC软件AEC通路,初始化AudioDeviceModule时添加如下配置:
audioDeviceModule.setUseHardwareAcousticEchoCanceler(false); audioDeviceModule.setUseHardwareNoiseSuppressor(false);
- 补充音频通路配置,搭配已设置的通话模式生效:
// 若使用扬声器通话必须添加该配置 audioManager.setSpeakerphoneOn(true); // 强制使用通话音频流类型 audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL), 0);
- 修正SDP中OPUS编码的配置参数,固定采样率、关闭容易出现适配问题的扩展项:
a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10; useinbandfec=0; usedtx=0
- 若上述配置均无效,可在患者端音频采集链路添加10ms~20ms的固定时延,匹配三星设备的音频播放缓冲偏移,修正AEC的回声抵消对齐逻辑。
内容的提问来源于stack exchange,提问作者Nadeem Iqbal
相关产品推荐
相关产品推荐

