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

如何在iOS平台的PJSIP 2.8中启用WebRTC AEC?

解决PJSIP 2.8中WebRTC AEC无法启动的问题

问题回顾

你已经完成了以下配置操作,但WebRTC AEC仍未正常启动:

  • 开启编译支持:在config_site.h中添加#define PJMEDIA_HAS_WEBRTC_AEC 1
  • 设置媒体配置参数:
    app_config.media_cfg.ec_options = PJMEDIA_ECHO_WEBRTC.rawValue
    app_config.media_cfg.ec_tail_len = 30
    
  • 执行PJSIP初始化:
    status = pjsua_init(&(app_config.cfg), &(app_config.log_cfg), &(app_config.media_cfg))
    

核心现象是:WebRTC AEC功能未生效,日志中缺失预期的WebRTC AEC mobile successfully created with options初始化日志。

解决方案

问题根源在于PJSIP的回声消除策略优先级:默认情况下,PJSIP会优先尝试使用设备端(硬件)的回声消除功能,而非内置的WebRTC软件AEC。你需要添加PJMEDIA_ECHO_USE_SW_ECHO标志,强制启用软件回声消除。

调整后的ec_options配置如下:

app_config.media_cfg.ec_options = PJMEDIA_ECHO_WEBRTC.rawValue | PJMEDIA_ECHO_USE_SW_ECHO.rawValue

保持ec_tail_len = 30和其他初始化步骤不变,重新运行后就能看到预期的WebRTC AEC初始化日志,功能也会正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:05:50