如何在最新版本的google webrtc中控制基于WebRTC的AEC和AGC?

问题描述 投票:0回答:1

此前,基于 WebRTC 的回声消除和自动增益控制控制可通过 Android 版 Google WebRTC 的

WebRtcAudioUtils
类中的静态方法实现:

WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(true);
WebRtcAudioUtils.setWebRtcBasedAutomaticGainControl(true);

但是,我看到在最近的版本中,

WebRtcAudioUtils
已移至不同的包,并且其访问权限已从公共减少为包私有,我们无法再通过Webrtc控制AEC和AGC。

有人可以帮助我了解这是否仍然可以通过其他方法实现,以及如何在最新版本中仍然对 AEC 和 AGC 进行基于 WebRTC 的控制?

我尝试通过

JavaAudioDeviceModule
启用硬件AEC和AGC,但声音仍然从本地麦克风拾取,并且出现回声。 另外,我尝试在对等连接上创建音频源时设置
MediaConstraints
,并使用我能找到的所有参数,但仍然出现同样的问题:

MediaConstraints mediaConstraints = new MediaConstraints();
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("echoCancellation", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation2", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("autoGainControl", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googAutoGainControl", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googAutoGainControl2", "true"));

当通过

WebRtcAudioUtils
启用基于 WebRTC 的 AEC 和 AGC 控制,并且禁用 AEC 和 AGC 的硬件控制时,音频质量似乎是最好的,所以有没有办法在最新版本中仍然拥有此控制与
WebRtcAudioUtils

android webrtc webrtc-android echo-cancellation
1个回答
0
投票

我遇到了同样的问题,JavaAudioDeviceModule.Вuilder 中的 setUseHardwareNoiseSuppressor、setUseHardwareAcousticEchoCanceler 方法和 setNoiseSuppressorEnabled JavaAudioDeviceModule 没有改变任何内容。 你找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.