TRTC Web SDK 对浏览器的详细支持度。
浏览器兼容信息
操作系统 | 浏览器类型 | 浏览器最低 | SDK 版本要求 | 接收(拉流) | 发送(推流) | 屏幕分享 |
Windows | 桌面版 Chrome 浏览器 | 56+ | - | 支持 | 支持 | 支持 Chrome72+ 版本 |
桌面版 QQ 浏览器(极速内核) | 10.4+ | - | 支持 | 支持 | 不支持 | |
桌面版 Firefox 浏览器 | 56+ | v4.7.0+ | 支持 | 支持 | 支持 Firefox66+ 版本 | |
桌面版 Edge 浏览器 | 80+ | v4.7.0+ | 支持 | 支持 | 支持 | |
桌面版搜狗浏览器(高速模式) | 11+ | v4.7.0+ | 支持 | 支持 | 支持 | |
桌面版搜狗浏览器(兼容模式) | - | - | 不支持 | 不支持 | 不支持 | |
桌面版 Opera 浏览器 | 46+ | v4.7.0+ | 支持 | 支持 | 支持 Opera60+ 版本 | |
桌面版 360 安全浏览器(极速模式) | 13+ | v4.7.0+ | 支持 | 支持 | 支持 | |
桌面版 360 安全浏览器(兼容模式) | - | - | 不支持 | 不支持 | 不支持 | |
桌面版微信内嵌浏览器 | - | - | 支持 | 不支持 | 不支持 | |
桌面版企业微信内嵌浏览器 | 4.0.8+(企业微信版本) | - | 支持 | 支持 | 不支持 | |
Mac OS | 桌面版 Safari 浏览器 | 11+ | - | 支持 | 支持 | 支持 Safari13+ 版本 |
桌面版 Chrome 浏览器 | 56+ | - | 支持 | 支持 | 支持 Chrome72+ 版本 | |
桌面版 Firefox 浏览器 | 56+ | v4.7.0+ | 支持 | 支持 | 支持 Firefox66+ 版本(注意[3]) | |
桌面版 Edge 浏览器 | 80+ | v4.7.0+ | 支持 | 支持 | 支持 | |
桌面版 Opera 浏览器 | 46+ | v4.7.0+ | 支持 | 支持 | 支持 Opera60+ 版本 | |
桌面版微信内嵌浏览器 | - | - | 支持 | 不支持 | 不支持 | |
桌面版企业微信内嵌浏览器 | 4.0.8+(企业微信版本) | - | 支持 | 支持 | 不支持 | |
Android | 微信内嵌浏览器(TBS 内核) | - | - | 支持 | 支持 | 不支持 |
微信内嵌浏览器(XWEB 内核) | - | - | 支持 | 支持 | 不支持 | |
企业微信内嵌浏览器 | - | - | 支持 | 支持 | 不支持 | |
移动版 Chrome 浏览器 | - | - | 支持 | 支持 | 不支持 | |
移动版 QQ 浏览器 | - | - | 不支持 | 不支持 | 不支持 | |
移动版 UC 浏览器 | - | - | 不支持 | 不支持 | 不支持 | |
iOS 12.1.4+ | 微信内嵌浏览器 | - | - | 支持 | 不支持 | 不支持 |
iOS 14.3+ | 微信内嵌浏览器 | 6.5+(微信版本) | - | 支持 | 支持 | 不支持 |
iOS | 企业微信内嵌浏览器 | 4.0.8+(企业微信版本) | - | 支持 | 支持 | 不支持 |
iOS 11.0+ | 移动版 Safari 浏览器 | 11+ | - | 支持 | 支持 | 不支持 |
iOS 12.1.4+ | 移动版 Chrome 浏览器 | - | - | 支持 | 不支持 | 不支持 |
iOS 14.3+ | 移动版 Chrome 浏览器 | - | - | 支持 | 支持 | 不支持 |
对于上述没有列出的环境,可以在当前浏览器打开 TRTC 能力测试 测试是否完整的支持 WebRTC 的功能。
浏览器厂商出于对用户安全、隐私等问题的考虑,限制网页在 https 协议下才能正常使用 TRTC Web SDK(WebRTC)的全部功能。为确保生产环境用户顺畅接入和体验 TRTC Web SDK 的全部功能,请使用 https 协议访问音视频应用页面。
注:本地开发可以通过 http://localhost 或者 file:// 协议进行访问。
URL域名及协议支持情况请参考如下表格:
应用场景 | 协议 | 接收(拉流) | 发送(推流) | 屏幕分享 | 备注 |
生产环境 | https协议 | 支持 | 支持 | 支持 | 推荐 |
生产环境 | http协议 | 支持 | 不支持 | 不支持 | |
本地开发环境 | http://localhost | 支持 | 支持 | 支持 | 推荐 |
本地开发环境 | http://127.0.0.1 | 支持 | 支持 | 支持 | |
本地开发环境 | http://[本机IP] | 支持 | 不支持 | 不支持 | |
本地开发环境 | file:// | 支持 | 支持 | 支持 |
注意:
如果您的开发环境无法通过localhost访问,也没有 https 协议,建议您使用反向代理工具,将某个 https 域名的访问请求代理到您的开发环境,例如:whistle,fiddler
错误名 | 描述 | 处理建议 |
NotFoundError | 找不到满足请求参数的媒体类型(包括音频、视频、屏幕分享)。 例如:PC 没有摄像头,但是请求浏览器获取视频流,则会报此错误。 | 建议在通话开始前引导用户检查通话所需的摄像头或麦克风等设备,若没有摄像头且需要进行语音通话,可在 TRTC.createStream({ audio: true, video: false }) 指明仅采集麦克风。 |
NotAllowedError | 用户拒绝了当前的浏览器实例的访问音频、视频、屏幕分享请求。 | 提示用户不授权摄像头/麦克风访问将无法进行音视频通话。 |
NotReadableError | 用户已授权使用相应的设备,但由于操作系统上某个硬件、浏览器或者网页层面发生的错误导致设备无法被访问。 | 根据浏览器的报错信息处理,并提示用户“暂时无法访问摄像头/麦克风,请确保当前没有其他应用请求访问摄像头/麦克风,并重试”。 |
OverConstrainedError | cameraId/microphoneId 参数的值无效。 | 请确保 cameraId/microphoneId 传值正确且有效。 |
AbortError | 由于某些未知原因导致设备无法被使用。 |
由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近 Profile 对应的分辨率。
屏幕分享的样式由浏览器控制,目前不能修改。
Web端支持发起混流,点击查看如何调用混流转码接口 。
可以尝试调用 TRTC.getCameras 方法是否能获取新的设备列表,如果仍然有拔掉的摄像头信息,说明浏览器底层也没有刷新这个列表,Web 端 SDK 也获取不到新的设备列表信息。
因浏览器自动播放策略限制,音频播放会出现 PLAY_NOT_ALLOWED 异常,此时业务层需要引 导用户手动操作 Stream.resume() 来恢复音频播放,自动播放受限处理建议 。
未知异常导致,请通过监控仪表盘查询收发两端的 audioLevel & audioEnergy。
检查一下 Web 页面上是否有获取到数据,在确认数据收发正常时,可以检查
通话双方的设备相距太近的时候,属于正常现象,测试时请相互距离远一点。当其他端听到 Web 端的声音存在回声、噪声、杂音等情况时,说明 Web 端的 3A 处理没有生效。
若您使用了浏览器原生 getUserMedia API 进行自定义采集,则需要手动设置 3A 参数:
若您使用 TRTC.createStream 接口进行采集,则无需手动设置 3A 参数,SDK 默认开启 3A。
出现该错误说明 TRTC Web SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC Web SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
请查看 应对防火墙限制相关
出现该错误说明 TRTC Web SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC Web SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
可以通过 getAudioLevel 获取当前音量大小
通过后台 RESTAPI 移除用户 会触发这个事件。需要注意的是同名用户同时登录不会触发这个事件,这种行为是业务逻辑错误,业务应当从逻辑上避免。若客户需要房间内成员互踢管理,建议客户使用 WebIM SDK实现相关逻辑。
支持监听远端退房事件,建议使用客户端事件中的 client.on('peer-leave') 事件实现远端用户退房通知。
是的,实时音视频支持全平台互通。
需要设置 createClient 的 pureAudioPushMode 参数。
这个表示 SDK 遇到不可恢复错误,业务层要么刷新页面重试要么调用 Client.leave 退房后再调用 Client.join 重试。
Web端4.3.8以上版本已支持自定义流ID,可以更新SDK版本。 小程序当前暂不支持。
采集系统声音只支持 Chrome M74+ ,在 Windows 和 Chrome OS 上,可以捕获整个系统的音频,在 Linux 和 Mac 上,只能捕获选项卡的音频。其它 Chrome 版本、其它系统、其它浏览器均不支持。
可以先获取到系统的摄像头和麦克风设备后,调用 switchDevice 来进行切换。
粉丝福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓