实时音视频 TRTC 常见问题汇总—小程序篇

腾讯实时音视频(Tencent Real-Time Communication,TRTC)是腾讯云基于 QQ 十多年来在音视频通话技术上积累,并结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。
为了方便开发者技术选型、开发集成,以下是针对不同问题场景整理的 TRTC 常见问题汇总,后续会持续更新,欢迎反馈。

小程序篇

小程序端可以禁用重力感应吗?

  • 小程序暂未开放重力感应设置接口。

小程序支持做最小化悬浮窗吗?

  • 目前在页面存在 mode='RTC' 的 live-pusher 和至少一个 live-player 时,小程序在后台运行的情况下可以正常采集和播放音频,否则小程序在切后台时会终止音视频通话。

小程序端有没有区分退房事件类型的,例如主动退房、被踢、解散房间?

  • EVENT.KICKED_OUT 表示服务端踢人或房间被解散退房,LOCAL_LEAVE 表示本地退房。

小程序端横屏推流的时候,为什么画面被裁剪了?

  • iOS 端可以通过打开竖屏方向锁定,Android 端暂时没有办法规避,需要小程序底层来修改。

小程序网络波动通过哪个值来判断?

通过 netQualityLevel 来判断:

  • 0:未定义
  • 1:最好
  • 2:好
  • 3:一般
  • 4:差
  • 5:很差
  • 6:不可用

小程序端和 Web 端支持自定义流 ID 吗?

  • 小程序端从微信7.0.12版本开始支持自定义流 ID,在 rtcConfig 构造时字段填写自定义流 ID,具体可以参考 Demo 实现。
  • Web 端4.3.8以上版本已支持自定义流 ID,在 createClient 时自定义该字段。

小程序端调试时为什么要开启调试模式?

  • 开启调试后,可以略过把“request 合法域名”加入小程序白名单的操作,避免遇到登录失败,通话无法连接的问题。

小程序端为什么会出现黑屏/画面卡住?

  • 您可以检查小程序 Demo 左下方的控制面板,打开【调试模式】即可在界面上看到详细的推拉流信息,如果没有推拉流信息则表示未成功进房或 live-pusher,live-player 创建失败。

小程序端集成实时音视频 SDK 前需要做哪些准备工作?

  1. 创建腾讯云实时音视频应用,购买相应的套餐,并获取到 SDKAppID 和密钥信息。
  2. 小程序服务器域名配置。
  3. 开通小程序类目与推拉流标签权限。(如不开通则无法正常使用)
    出于政策和合规的考虑,微信暂未放开所有小程序对实时音视频功能(即 <live-pusher> 和 <live-player> 标签)的支持:
    – 小程序推拉流标签不支持个人小程序,只支持企业类小程序。
    – 小程序推拉流标签使用权限暂时只开放给有限 类目
    – 符合类目要求的小程序,需要在【微信公众平台】>【开发】>【接口设置】中自助开通该组件权限,如下图所示:

更多详情请参见 跑通Demo(小程序)快速集成(小程序)

小程序的环境要求是怎样的?

  • 微信 App iOS 最低版本要求:7.0.9
  • 微信 App Android 最低版本要求:7.0.8
  • 小程序基础库最低版本要求:2.10.0
  • 由于小程序测试号不具备 <live-pusher> 和 <live-player> 的使用权限,请使用企业小程序账号申请相关权限进行开发。
  • 由于微信开发者工具不支持原生组件(即 <live-pusher> 和 <live-player> 标签),需要在真机上进行运行体验。
  • 不支持 uniapp 开发环境,请使用原生小程序开发环境。

更多详情请参见 快速集成(小程序)

小程序端进入多人音视频看不到画面,该如何处理?

  1. 请使用手机真机运行,微信开发者工具内部的模拟器目前暂不支持直接运行。
  2. 请通过 wx.getSystemInfo 查询小程序基础库版本,小程序基础库最低版本要求为2.10.0。
  3. 请确认小程序所属的类目,由于监管要求,小程序推拉流标签使用权限暂时只开放给有限 类目

如有更多需求,或希望深度合作,可以 提交工单 或致电4009100100联系我们。

小程序端运行出错,该如何排查?

  1. 请检查开通的小程序类目是否正确,<live-pusher> 和 <live-player> 标签是否已开启。
  2. 请确认已将 小程序域名白名单 添加到小程序 request 合法域名,或已开启调试模式。
  3. 请重新解压小程序端 Demo 直接运行,若运行正常,建议参考 快速集成(小程序) 重新集成 SDK。
  4. 若问题依然存在,可以登录 微信小程序开发者社区 查找相关资料,也可以 提交工单 或致电 4009100100 联系我们。

小程序端如果需要上线或者部署正式环境怎么办?

  1. 请申请域名并做好备案工作。
  2. 请将服务端代码部署到申请的服务器上。
  3. 请将推流域名及 IM 域名配置到小程序控制台 request 合法域名里面:
    • https://cloud.tencent.com
    • https://yun.tim.qq.com

<live-pusher> 和 <live-player> 标签使用及错误码参考:

是否能监听小程序缩小到后台?

  • 可以。监听小程序的 onHide 方法,即可查看用户是否缩小到后台。

为什么拨打不通,或者被踢下线?

组件暂不支持多实例登入,不支持离线推送信令功能,请您确认账号登入的唯一性。

  • 多实例:一个 userID 重复登入,或在不同端登入,将会引起信令的混乱。
  • 离线推送:实例在线才能接收消息,实例离线时接收到的信令不会在上线后重新推送。即,小程序在后台与离线状态下,无法收到呼入提醒或来电提醒。

怎么区分主播观众

在接入侧不需要设置主播/观众身份,SDK本身是通过是否有上行流来区分的,pusherAttributes的属性中 enableCamera || enableMic 为 true 的情况下是主播,音视频都没有上行的情况下是观众。

小程序怎么接收 SEI 消息

小程序怎么使用字符串房间号进房

  • 在进房时使用 strRoomID ,该参数的优先级会高于 roomID。

怎么播放背景音乐

  • pusherInstance 中提供了 playBGM 的方法,具体请参见 pusherInstance。如果使用微信的原生标签进行播放可能会在某些机型上不兼容,导致音量模式异常或听筒扬声器播放的异常。

怎样在小程序端暂停推流?

在小程序端,音频流与视频流可分别进行单独的暂停推流设置,pusherInstance 中相关方法如下:

  • 暂停视频流:pusherInstance 中提供了 pause 的方法,调用这个接口,远端会显示黑屏帧。
  • 暂停音频流:pusherInstance 中提供了 setMICVolume 的方法,调用这个接口,可以将本地采集的音量设为0,远端不会收到声音。

例如在需要同时暂停两个流的场景,可以在调用 pause 暂停视频流的同时,调用 setMICVolume 将音量设为 0,暂停音频流。

以上两个方法均会保留摄像头和麦克风设备的占用,是推荐的暂停推流的方式。

pusherAttributes 中也提供了直接关闭设备的属性:enableMic、enableCamera,当这两个属性的变化时,远端会收到状态变化事件,具体现象可见下表:

状态变化调用

enableMic 当前值

enableCamera 当前值

小程序现象

web端现象

enableMic: false

true

true

REMOTE_AUDIO_REMOVE 事件

收到 PLAYER_STATE_CHANGED 中 mute audio 事件

true

false

REMOTE_AUDIO_REMOVE 事件

收到 stream-removed 事件

enableCamera: false

true

true

REMOTE_VIDEO_REMOVE 事件

收到 PLAYER_STATE_CHANGED 中 mute video 事件

false

true

REMOTE_VIDEO_REMOVE 事件

收到 stream-removed 事件


原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/212463.html

(0)
上一篇 2021年12月16日
下一篇 2021年12月16日

相关推荐

发表回复

登录后才能评论