本文介绍 Web SDK 对浏览器的支持情况,以及访问协议限制和防火墙限制的处理建议。
浏览器兼容表
如下兼容性表仅供参考,实际以 TRTC.isSupported 检测结果为准。您也可以使用 TRTC 检测页面 快速验证浏览器的兼容性。
PC 端
| 操作系统 | 浏览器 | 浏览器最低版本要求 | 拉流 | 推流 | 屏幕分享 | 备注 |
|---|---|---|---|---|---|---|
| Windows | Chrome | 56+ | ✅ | ✅ | Chrome 72+ | |
| Windows | Edge | 80+ | ✅ | ✅ | Edge 80+ | |
| Windows | Firefox | 56+ | ✅ | ✅ | Firefox 66+ | |
| Windows | 其他 | Chromium 56+ | ✅ | ✅ | Chromium 72+ | 其他浏览器例如 QQ 浏览器、Opera 等基本都是基于 Chromium 内核开发的,所以关注 Chromium 版本即可 |
| Mac | Safari | 11+ | ✅ | ✅ | Safari 13+ | |
| Mac | Chrome | 56+ | ✅ | ✅ | Chrome 72+ | |
| Mac | Edge | 80+ | ✅ | ✅ | Edge 80+ | |
| Mac | Firefox | 56+ | ✅ | ✅ | Firefox 66+ | |
| ChromeOS | Chrome | - | ✅ | ✅ | Chrome 72+ |
移动端
| 操作系统 | 浏览器 | 浏览器最低版本要求 | 拉流 | 推流 | 屏幕分享 | 备注 |
|---|---|---|---|---|---|---|
| Android | Chrome | 85+ | ✅ | ✅ | ❌ | 85 以下的版本 chrome 已知缺陷可能会导致推拉流失败,建议使用 Chrome 85+ 版本 |
| Android | Edge | 85+ | ✅ | ✅ | ❌ | |
| Android | Firefox | 56+ | ✅ | ✅ | ❌ | |
| Android | 微信内嵌浏览器 | - | ✅ | ✅ | ❌ | |
| Android | 小米浏览器 | - | ❌ | ❌ | ❌ | |
| Android | 其他 | Chromium 85+ | ✅ | ✅ | ❌ | 其他浏览器例如 QQ 浏览器、UC 浏览器等基本都是基于 Chromium 内核开发的,所以关注 Chromium 版本即可 |
| iOS | Safari | 11+ | ✅ | ✅ | ❌ | |
| iOS | Chrome | 11+ | ✅ | 支持(iOS 14.3+) | ❌ | iOS 中非 Safari 浏览器都是基于 WKWebview 实现的,WKWebview 在 iOS 14.3+ 才支持采集摄像头、麦克风能力。 |
| HarmonyOS | 华为浏览器 | - | ✅ | ✅ | ❌ |
注意事项
- Mac Firefox 屏幕分享可能会出现视频部分区域错位,Firefox bug。暂无法规避,建议使用 Chrome or Safari 浏览器进行屏幕分享。
- WebRTC 已知问题及规避方案。
- 由于 H.264 版权限制,华为 Chrome 88 以下版本,无法使用 H264 编码(即无法推流)。如果您希望在华为设备 Chrome 浏览器中,使用 TRTC Web SDK 推流,请提交 腾讯云实时音视频 Web SDK 用户能力支持申请 开通 VP8 编解码能力。
- 建议您及时将 TRTC Web SDK 更新至最新版本,以便获得更好的产品稳定性及在线支持。版本升级注意事项请参见:升级指引。
页面访问协议说明
浏览器厂商出于对用户安全、隐私等问题的考虑,限制网页在 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
应对防火墙策略
若用户处于受限网络(例如带有防火墙的企业内网),使用 TRTC Web SDK 可能会受防火墙限制导致无法正常通话。 请参考:应对防火墙策略限制。
设备授权说明
由于操作系统和浏览器的隐私保护策略规定,在浏览器里进行音视频通话,需要在浏览器里获得摄像头、麦克风对授权。设备授权分为两部分:
步骤 1: 操作系统允许浏览器使用摄像头、麦克风设备
Windows 和 Mac 的设置路径如下:
Windows: Windows设置 -> 隐私 -> 摄像头(或者麦克风)-> 允许桌面应用访问你的相机(或者麦克风)
Mac:系统偏好设置 -> 安全性与隐私 -> 隐私 -> 摄像头(或者麦克风、屏幕录制)-> 允许您的浏览器访问您的摄像头(或者麦克风、屏幕录制)
步骤2: 浏览器允许应用页面使用摄像头、麦克风设备
浏览器会根据域名进行授权设备的使用权,当 SDK 获取采集设备时,如果没有授权就会弹出授权对话框,需要点击允许才可以进行音视频通话。
- 不同浏览器的对话框是不一样的,这是浏览器内置对话框,目前不支持定制,已知的部分浏览器对话框如下:
桌面端 chrome:
桌面端 Safari:
Android 微信、Chrome:
iOS 微信、Safari:
- iOS 的浏览器每次都会询问是否授权,目前不支持设置默认授权。
- 在移动端如果选择了禁止授权,通常情况下刷新页面不会重新弹出授权对话框,需要关闭页面,甚至关闭浏览器重新打开页面才能弹出授权对话框。
- 在桌面端如果选择了禁止授权,则需要进入浏览器的设置窗口进行设置,设置路径如下:
Chrome:点击 URL 前面的安全锁会看到以下界面,按提示设置即可
Safari:偏好设置 -> 网站 -> 找到摄像头、麦克风、屏幕共享 -> 按提示设置即可