如何解决部分安卓手机QQ浏览器无法推拉流?

部分安卓手机(如华为P20、vivo iQOO)安装QQ浏览器后首次打开可能无法拉起X5内核,导致WebRTC兼容问题推拉流失败(报错:Failed to execute 'setRemoteDescription' on 'RTCPeerConnection’)。如果遇到该场景请按照以下操作确保X5内核初始化:
  1. 连接WIFI网络。
  2. 刷新当前页面并等待大约30秒。
  3. 重启浏览器,再次访问页面即可恢复正常。

为什么部分浏览器不支持Web RTS SDK?

对于Web RTS SDK暂不支持的浏览器,主要有以下原因:
  • 浏览器未实现WebRTC相关API,或实现有缺陷(如IE浏览器、UC浏览器)。
  • 浏览器支持WebRTC API,但不支持H.264编码,仅支持VP8(如部分安卓手机系统自带浏览器)。

为什么Safari/iOS报错:Failed to set remote answer sdp

如果遇到如下报错:
Failed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer.

是因为您集成了其他WebRTC相关SDK,其中的webrtc-adapter冲突导致的,为避免此冲突,RTS SDK提供了一个不包含adapter的版本,您可以在已经引入同类SDK的情况下使用此版本(从2.2.4版本开始支持)。

  • 如果使用JS方式引入SDK,则只需替换成2.2.4版本。
  • 如果使用NPM方式引入SDK,则使用以下方式引入:
    import { AliRTS } from 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js';
    在 TypeScript 项目中,为了获得和普通版本一样的类型支持,需要您进行模块声明:
    // 项目根目录新建文件 typings.d.ts
    declare module 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js' {
      import {AliRTS} from 'aliyun-rts-sdk';
      export {AliRTS}
    }