Android上的回音消除无法正常工作

时间:2019-06-03 15:02:02

标签: android webrtc webrtc-android

我们正在尝试启用已经实施的回声消除技术。

场景:

两个android设备已成功连接,并且两个设备上的声音都很好。

设备1启用/停用免提电话:

AudioManager audioManager = ((AudioManager) getSystemService(AUDIO_SERVICE));
audioManager.setSpeakerphoneOn(false);

设备2 他们说话时会听到自己的声音(针对此问题)

任何帮助或指导将不胜感激。

4 个答案:

答案 0 :(得分:1)

默认情况下,某些Android设备不支持回声消除。如果您使用的是werbtc,则Webrtc提供了api来执行回声消除。请使用以下代码启用回声消除。

WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(true);
WebRtcAudioUtils.setWebRtcBasedNoiseSuppressor(true);

答案 1 :(得分:1)

在基于WebRTC的Cordova移动应用上测试视频通话时,我一直在努力解决Android上的回音消除问题。但是,包括IOS在内的大多数移动设备都没有回声问题,但Samsunng-S10和诺基亚设备上存在回声。

我还假设WebRTC支持默认情况下启用的音频约束“ echoCancellation:true”。但是,这种音频限制似乎无效。

我通过在AudioManager中设置模式来修复它

command -v

看起来有些移动设备在音频模式显式设置为“通信”之前不会启动回声消除(即使受支持)。

答案 2 :(得分:0)

假设AEC处于活动状态并且正在运行,我建议验证echo path是否受AEC支持。

答案 3 :(得分:0)

您需要在创建的AudioRecord实例上附加一个AcousticEchoCanceler