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

使用AgoraRTCSDK 3.6.11在Chrome118中遇getStats报错求助

解决Agora RTC SDK 3.6.11在Chrome 118中getStats报错问题

问题原因

Chrome 118版本彻底移除了RTCPeerConnection上基于回调的getStats() API,仅保留Promise版本,而Agora RTC SDK 3.6.11仍在使用旧的回调调用方式,导致触发报错:

Failed to execute 'getStats' on 'RTCPeerConnection': The callback-based getStats()

解决方案

方案1:升级Agora RTC SDK到兼容版本

Agora官方已针对浏览器API变更更新了SDK,直接升级到3.7.0及以上版本即可解决该问题。新版本已替换为Promise版getStats()调用,完全适配Chrome 118及后续版本。

方案2:临时polyfill适配(无法立即升级SDK时)

在加载Agora SDK之前,注入以下代码重写getStats方法,将回调调用适配为Promise版本:

// 适配回调版getStats到Promise版
if (RTCPeerConnection.prototype.getStats && RTCPeerConnection.prototype.getStats.length !== 0) {
  const originalGetStats = RTCPeerConnection.prototype.getStats;
  RTCPeerConnection.prototype.getStats = function(target, callback) {
    // 处理仅传回调的情况
    if (typeof target === 'function') {
      callback = target;
      target = undefined;
    }
    // 调用原生Promise版,转成回调形式返回
    return originalGetStats.call(this, target)
      .then(statsReport => callback(null, statsReport))
      .catch(error => callback(error));
  };
}

这段代码会拦截SDK对旧版getStats()的调用,转成浏览器支持的Promise方式执行,避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:13:14