Loading...

初始化 SDK 库控制台报 xxx of undefined 错?

问题描述

在项目中引入了 Web SDK 库文件加入会议,发现初始化时在控制台中提示 undefined 类型的错误,例如:

Cannot read property 'addEventListener' of undefined

问题原因

WebRTC API 允许 Web 应用程序访问摄像头,麦克风和高级联网功能。所有这三个功能都可能存在安全漏洞,因此 Web 浏览器限制了 WebRTC API 的使用方式。最重要的限制是,只能从“安全站点”(使用 https(而非 http)的站点)访问摄像头和麦克风设备。

此规则有一个例外,Chrome、Safari 和 Firefox 都将特殊的主机名 ​​localhost​​​ 和 ​​127.0.0.1​​​ 视为例外,​​localhost​​​ 允许从加载的页面访问相机和麦克风。因此,本地开发阶段可以使用 ​​http://localhost/​​进行调试。

在 Chrome 中,通过 http 加载的网页中内置的对象 ​​navigator.mediaDevices​​ 是 undefined。如果看到类似于 “Cannot read property 'xxx' of undefined” 的控制台错误,则可能是从“不安全的站点”加载了使用了 SDK 库文件。

解决方法

  1. 建议在入会前调用 ​​xyRTC.checkSupportWebRTC​​ 方法检测当前浏览器是否支持 WebRTC,对于不支持的浏览器版本,建议用户更新使用最新版本的 chrome 或 edge 浏览器入会。
  2. 检查当前页面的访问地址是否是 ​​https 或 http://localhost​​ 协议,如果是非此协议,则需要更新使用 https 或 localhost 协议。
意见反馈