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

如何在最新版Google WebRTC中控制基于WebRTC的AEC与AGC?

在新版Android WebRTC中替代WebRtcAudioUtils控制AEC/AGC的方案

针对你遇到的WebRtcAudioUtils无法访问的问题,新版Android WebRTC已经将音频处理的配置入口统一到JavaAudioDeviceModule的Builder中,以下是实现和之前同等效果的具体步骤:

1. 禁用硬件音频处理,强制启用WebRTC软件AEC/AGC

通过JavaAudioDeviceModule.Builder的配置项直接禁用系统硬件的AEC、AGC,确保WebRTC自带的软件音频处理模块生效,这和之前调用WebRtcAudioUtils设置的效果完全一致:

// 构建音频设备模块,禁用硬件音频处理
JavaAudioDeviceModule audioDeviceModule = JavaAudioDeviceModule.builder(context)
    .setEnableBuiltInAcousticEchoCanceler(false) // 关闭硬件AEC
    .setEnableBuiltInAutomaticGainControl(false) // 关闭硬件AGC
    .setEnableBuiltInNoiseSuppressor(false) // 如果之前也禁用硬件降噪,可添加此配置
    .createAudioDeviceModule();

// 初始化PeerConnectionFactory时传入该音频模块
PeerConnectionFactory.InitializationOptions initOptions = PeerConnectionFactory.InitializationOptions.builder(context)
    .setAudioDeviceModule(audioDeviceModule)
    .createInitializationOptions();
PeerConnectionFactory.initialize(initOptions);

// 创建PeerConnectionFactory时绑定该音频模块
PeerConnectionFactory peerConnectionFactory = PeerConnectionFactory.builder()
    .setAudioDeviceModule(audioDeviceModule)
    .createPeerConnectionFactory();

2. 配合MediaConstraints强化配置(可选)

虽然核心配置靠JavaAudioDeviceModule,但可以继续保留MediaConstraints的相关参数,确保音频源层面也明确开启软件处理:

MediaConstraints mediaConstraints = new MediaConstraints();
// 启用基础回声消除和自动增益
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("echoCancellation", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("autoGainControl", "true"));
// 指定WebRTC的软件版本(部分设备需要)
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googEchoCancellation2", "true"));
mediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair("googAutoGainControl2", "true"));

// 创建音频轨道时传入约束
AudioSource audioSource = peerConnectionFactory.createAudioSource(mediaConstraints);
AudioTrack audioTrack = peerConnectionFactory.createAudioTrack("audio1", audioSource);

验证配置是否生效

可以通过查看WebRTC的日志确认:

  • 搜索Built-in AEC disabled、Built-in AGC disabled,确认硬件处理已关闭
  • 搜索AecCore、AgcManager相关日志,确认软件模块已初始化

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:01:24