本页列出使用 Web SDK 的浏览器已知问题和功能已知限制。
浏览器已知问题
如无特殊需求,建议使用 VP8 视频编码。使用 H.264 编码可能会导致开启硬件加速后出现一系列问题,包括帧率、码率、分辨率达不到目标值;视频花屏、黑屏;弱网环境下体验较差等。
桌面端
| 浏览器 | 已知问题与解决方案 |
|---|
Chrome | 某些 Windows 设备上硬件加速对视频渲染处理时导致画面抖动。 解决方案:关闭硬件加速。 在 Windows 设备上使用 Chrome 进行屏幕分享,选择分享微信、QQ、钉钉、WPS 应用窗口时可能出现采集黑屏,或拖动应用窗口时出现采集黑屏。 解决方案:建议分享整个屏幕。 在 Windows 设备上使用 deviceId 为 "default" 或 "communications" 的麦克风时,如插入新的麦克风再拔出,原麦克风采集可能中断。 解决方案:避免使用 deviceId 为 "default" 或 "communications" 的麦克风。 在同一 PC 设备上同时使用 Chrome 和 Safari 进行音视频通话时,订阅端出现 Chrome 声音变小、Safari 视频图像略大于 Chrome 的现象。
|
Safari | |
Firefox | 由于 Firefox 没有旋转视频画面的 RTP 扩展头,使用 Firefox 与其他设备互通时,Firefox 端看其他端的视频画面会发生旋转。 解决方案:使用 CSS 实现旋转。 Firefox 仅支持设置视频帧率为 30 FPS。 首次安装 Firefox 浏览器会在联网状态下动态安装 H.264 编解码器。安装完成前,无法正常使用 Web SDK 推拉流。 解决方案:调用 getSupportedCodecs 获取当前浏览器支持的编解码类型。若检测到 Firefox 浏览器不支持 H.264 编解码,则使用 Firefox 打开 about:addons,在“插件”中检查 OpenH264 的安装情况,等待安装完成后再进行通话。
|
移动端
| 平台 | 已知问题与解决方案 |
|---|
Android | 由于华为设备限制,部分版本的华为浏览器及华为设备上的 Chrome 浏览器无法推流和订阅视频。 解决方案:使用 VP8 编码。 在某些 Android 12 设备上(如 Google Pixel 3/Pixel 4、红米 K50)使用 Chrome 浏览器或 Chromium 内核浏览器 97 以下版本开启视频硬件编码可能会导致花屏。 解决方案:使用 Chrome 97+。 由于 Android 设备的音频路由全部由 Android 操作系统分配而 Chromium 不能修改,用户使用 Chromium 为内核的浏览器加入音视频通话并从扬声器切换到蓝牙耳机时,远端用户的音频仍然通过扬声器播放。参看 Chromium Issue 1317548。
|
iOS | iOS 15.x 上的所有浏览器及内嵌 WKWebView 的应用(如微信浏览器和 Chrome 浏览器),在 DOM 中播放视频且在 video 元素或其父元素添加某些 CSS 属性(如 transform、animation)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。参看 Webkit Bug 230532。 解决方案:尽量减少更改 video 元素及其父元素的 CSS 属性。 iOS 15.1 使用 H.264 推流导致页面崩溃。参看 Webkit Bug 232381、Webkit Bug 231505。 解决方案:使用 iOS 15.2+ 或使用 VP8 推流。 iPhone 14 Pro/iPhone 14 Pro Max 设备上使用 iOS 16.0 出现音频采集失败或音频断流现象。 解决方案:使用 iOS 16.1+。 iOS 15 以下版本无法使用 video 元素播放 canvas.captureStream 采集的外部视频。参看 Webkit Bug 181663。 解决方案:使用 iOS 15+。 iOS 15 以下版本连接耳机时无法切换到内置麦克风,始终通过耳机麦克风输入。参看 Webkit Bug 233634。 在 iPad 设备上使用 iOS 15 以下版本调用 enumerateDevices 无法获取外置音频输入设备信息。 解决方案:使用 iOS 15+。 iOS 13 和 iOS 14 上可能出现远端用户音量随机变化的问题。 切换前置、后置摄像头时采集画面可能出现瞬间旋转。 语音路由不稳定,可能出现连接外置耳机时通过扬声器播放,或未连接耳机时自动切换扬声器和听筒。 连续两次调用 getUserMedia 获取相同媒体类型的轨道时,第一次获取的媒体轨道会静音或黑屏,建议避免这样的操作。 在其他应用中使用过音视频输入设备后(如 Siri 或微信),无法通过 Web SDK 采集本地音频或视频。 iOS 11 和 12 中,旋转视频画面的 RTP 扩展头不生效。 解决方案:使用 CSS 实现旋转。
|
功能已知限制
屏幕共享
采集屏幕共享 startScreenCapture 方法仅支持 Windows 和 macOS,浏览器及版本需为:
Chrome 74+
Firefox 66+
Edge 99+
Safari 13+
仅 Chrome 浏览器支持采集屏幕音频。
不同浏览器可选择分享的内容不一致。
- Chrome、Edge 浏览器支持分享整个屏幕、应用窗口、标签页。
- Firefox 浏览器支持分享整个屏幕、应用窗口。
- Safari 浏览器支持分享整个屏幕。
仅 Chrome 浏览器支持设置屏幕采集的视频内容类型,即 setScreenEncoderConfig 方法中的 contentHint 参数,其他浏览器中调用无效。
在 Windows 设备上使用 Chrome 进行屏幕分享,选择分享微信、QQ、钉钉、WPS 应用窗口时可能出现采集黑屏,或拖动应用窗口时出现采集黑屏。建议分享整个屏幕。
获取设备列表
获取和设置扬声器设备
收发 SEI
插件功能