将 Agora Web SDK 集成到你的 Web 应用后,遇到问题时可以通过浏览器控制台打印的日志进行调试。本文列出控制台日志中常见的错误和原因。
播放指定的 DOM 不存在或者 ID 没有找到。
确保在调用 Stream.play 方法时已生成相应的父容器。
在还未成功加入频道时调用了 Client.publish 方法。
检查你的集成逻辑,确保在调用 Client.publish 时已成功加入频道。
错误原因和解决方法同 Failed to load resource。
下表列出了常见的错误原因和相应的解决办法。
| 错误原因 | 解决办法 |
|---|---|
| 使用的浏览器不完全支持 WebRTC。 | 使用 Agora Web SDK 支持的浏览器。 |
| 使用了某些浏览器插件,导致 WebRTC 无法获取本地 Candidate。 | 关闭浏览器插件。 |
| 用户的网关防火墙禁用了 UDP 协议或者禁用了 10000 以上的 UDP 端口。 | 关闭防火墙或者使用云代理服务。 |
| 用户使用了 VPN。 | 关闭 VPN。 |
| 浏览器使用的编解码格式为 VP8,但用户使用的 Safari 浏览器不支持 VP8。 | 建议用户将 Safari 升级到 12.1 以上版本,或者使用 Chrome 浏览器。 |
| 浏览器使用的编解码格式为 H.264, 但设备硬件不支持 H.264。 | 将编解码格式设为 VP8。 |
| 网络运营商连接问题。 | 建议用户尝试更换网络,例如使用手机蜂窝数据连接。 |
如果按照以上方法排查后仍然报错,请联系 Agora 技术支持。
在 Stream.init 尚未成功时就调用了 Client.publish 。
在 Stream.init 成功的回调中调用 publish 方法。
用户本地的 DNS 解析错误。
建议用户根据所在区域修改 DNS 服务器的地址后重新加入频道:
114.114.114.114。8.8.8.8。调用 switchDevice 导致报错。
该错误没有任何影响,忽略即可。
Stream.play 中指定的 HTMLElementID 不合法。
确保 HTMLElementID 字符串仅包含 ASCII 字符集中的字母和数字,或 "_"、"-"、".",且字符串长度大于 0 小于 256 字节。
可能的原因有:
检查 Client.init 中 appId 和 Client.join 中 tokenOrKey 的设置,确保使用有效的 App ID 和 token。
可能的原因有:
错误原因和解决方法同 None Ice Candidate not allowed。
建立 WebRTC 连接时未找到 ICE (Interactive Connectivity Establishment) candidate。
根据是否开启云代理,建立连接时会使用不同类型的 candidate,因此解决办法也不同。
错误原因和解决方法同 DTLS failed。
一个频道中有多个相同的 uid。
确保频道中每个用户的 uid 是唯一的。
在浏览器上开启了模拟移动设备调试。
Agora Web SDK 不支持模拟移动设备调试,请勿使用模拟器进行调试。
在浏览器上开启了模拟移动设备调试。
Agora Web SDK 不支持模拟移动设备调试,请勿使用模拟器进行调试。
该错误表示尚未建立连接,通常是因为调用 API 时序不正确导致的。例如调用了 Client.leave 之后调用 Client.publish。
检查你的 API 调用顺序。