常见问题

更新时间:
复制 MD 格式

如何解决部分安卓手机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}
    }

如何在推流中切换摄像头?

如果在推流过程中需要在手机前后摄像头之间切换,可以参考以下操作:

// 打开前置/后置摄像头
rtsClient.createStream({
  // environment-后置摄像头,user-前置摄像头
  video: { facingMode: 'environment' },
  audio: true
})
  .then(newStream => {
    // 更新本地预览的画面
    newStream.play(mediaElement);

    // 更新发布出去的音视频 track
    rtsClient.publisher.peerconnection.pc.getSenders().forEach(sender => {
      if (sender.track?.kind === 'video') {
        sender.replaceTrack(newStream.videoTrack);
      } else if (sender.track?.kind === 'audio') {
        sender.replaceTrack(newStream.audioTrack);
      }
    });

    // 关掉原来的 stream(oldStream 是之前一次 createStream 的返回值)
    oldStream.stop();
  })

拉流报错 404、4008 或 4004 如何处理?

  1. 拉流返回 404 且未重试:播放器 SDK 的重试配置不影响 RTS 拉流重试,该错误通常由拉流超时引起。建议将播放器 SDK 升级至 7.15.0 及以上版本进行验证。

  2. Web 端拉流报错 4008(缓冲数据超时):AliPlayer 不支持直接拉取 ARTC 协议流,需使用 RTS 方式拉流。排查步骤:

    • 确认使用正确的 RTS 拉流地址或集成方式。

    • 检查 Web 端是否配置了跨域允许。

    • 对比官方 Demo 代码,排除因接入普通直播遗留的参数干扰。

  3. 播放流提示 code 4004 错误:需确认域名已在控制台开启超低延时直播(RTS)功能,并使用官方测试地址验证播放是否正常。

Web RTS SDK 推流后 H5 拉流画面偏绿怎么办?

  1. Android 端:检查 manifest.jsonapp-plus -> distribute -> android 配置,确保 hardwareAccelerated 设置为 true,开启硬件加速以修复部分机型 WebView 中 YUV 转 RGB 的 Shader bug。

  2. PC 端浏览器(如 Chrome、Edge):尝试关闭浏览器的硬件加速模式。操作路径为进入浏览器设置(chrome://settingsedge://settings/system),找到「系统」选项,关闭「使用硬件加速模式」,然后重启浏览器验证效果。

说明

注意:Android 端需开启硬件加速,PC 浏览器端需关闭硬件加速,两者方向相反,不可混淆。