You need to enable JavaScript to run this app.
导航

Web SDK 已知问题与解决方案

最近更新时间2024.01.04 16:48:08

首次发布时间2023.02.14 18:43:47

本页列出使用 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

  • Safari 16 对外部采集的视频截图时,截图内容为黑屏。

  • Safari 13 可能听不到远端用户的声音。

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

  • Android Chrome 上无法使用 H.264 编码发送大小流。
    解决方案:使用 VP8 编码。

  • 在部分小米、OnePlus、Vivo 机型上,如果本地用户使用蓝牙耳机,在通话过程中通过蓝牙耳机采集本地音频且发送音频流后,有概率会无法收听到远端用户的声音,出现无声问题。

  • Chrome 88 开启硬件加速时,使用 HTMLMediaElement.captureStream 推 MP4 文件,远端拉流观看黑屏。参看 Chromium Issue 1156408
    解决方案:升级至 Chrome 96+。

  • 华为 MediaPad M5 lite,使用 Chrome、自带浏览器,第一次连接蓝牙的时候无法切换到蓝牙耳机,第二次连接蓝牙耳机才能正常切换。

  • 华为 P30 Pro 在不同采集参数设置下,使用的默认摄像头可能不同。如果希望指定前置或者后置摄像头,建议采集时不使用默认值。

iOS

  • iOS 15.x 上的所有浏览器及内嵌 WKWebView 的应用(如微信浏览器和 Chrome 浏览器),在 DOM 中播放视频且在 video 元素或其父元素添加某些 CSS 属性(如 transformanimation)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。参看 Webkit Bug 230532
    解决方案:尽量减少更改 video 元素及其父元素的 CSS 属性。

  • iOS 15.1 使用 H.264 推流导致页面崩溃。参看 Webkit Bug 232381Webkit 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 实现旋转。

  • iOS 15 上的 Safari 浏览器及 iOS 14.4 至 iOS 15 上内嵌 WKWebView 的应用(如微信浏览器、Chrome 浏览器),在浏览器或应用切换到后台时,音频流发送中断。参看 Webkit Bug 231105Apple 论坛讨论
    解决方案:用户在本地监听 visibilityChange 事件,如果切到后台,就通过信令通知远端用户在 UI 上进行提示。

功能已知限制

屏幕共享

  • 移动端不支持采集屏幕共享 startScreenCapture。该方法仅支持 Windows 和 macOS,浏览器及版本需为:

    • Chrome 74+

    • Firefox 66+

    • Edge 99+

    • Safari 13+

  • 仅 Chrome 浏览器支持采集屏幕音频。

    • Windows 平台支持在共享整个屏幕和共享 Chrome 标签页时分享音频,不支持在共享应用窗口时分享音频。

    • macOS 平台仅支持在共享 Chrome 标签页时分享音频。

  • 不同浏览器可选择分享的内容不一致。

    • Chrome、Edge 浏览器支持分享整个屏幕、应用窗口、标签页。
    • Firefox 浏览器支持分享整个屏幕、应用窗口。
    • Safari 浏览器支持分享整个屏幕。
  • Firefox 浏览器不支持设置屏幕采集的视频内容类型,即 setScreenEncoderConfig 方法中的 ScreenEncoderConfig.contentHint 参数,详情参看 contentHint 浏览器兼容信息

  • 在 Windows 设备上使用 Chrome 进行屏幕分享,选择分享微信、QQ、钉钉、WPS 应用窗口时可能出现采集黑屏,或拖动应用窗口时出现采集黑屏。建议分享整个屏幕。

获取设备列表

获取和设置扬声器设备

收发 SEI 消息

sendSEIMessage 等收发 SEI 消息接口兼容性说明:

  • SEI 消息仅支持在 H.264 编码,且使用 Chromium 86+ 内核的浏览器上使用。
  • Android 设备无法在语音通话场景下自动生成黑帧视频流发送 SEI 数据。
  • iOS 设备不支持使用 SEI 功能。

插件功能