腾讯实时音视频(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 前需要做哪些准备工作?
- 创建腾讯云实时音视频应用,购买相应的套餐,并获取到 SDKAppID 和密钥信息。
- 小程序服务器域名配置。
- 开通小程序类目与推拉流标签权限。(如不开通则无法正常使用)
出于政策和合规的考虑,微信暂未放开所有小程序对实时音视频功能(即 <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 开发环境,请使用原生小程序开发环境。
更多详情请参见 快速集成(小程序)。
小程序端进入多人音视频看不到画面,该如何处理?
- 请使用手机真机运行,微信开发者工具内部的模拟器目前暂不支持直接运行。
- 请通过 wx.getSystemInfo 查询小程序基础库版本,小程序基础库最低版本要求为2.10.0。
- 请确认小程序所属的类目,由于监管要求,小程序推拉流标签使用权限暂时只开放给有限 类目。
如有更多需求,或希望深度合作,可以 提交工单 或致电4009100100联系我们。
小程序端运行出错,该如何排查?
- 请检查开通的小程序类目是否正确,<live-pusher> 和 <live-player> 标签是否已开启。
- 请确认已将 小程序域名白名单 添加到小程序 request 合法域名,或已开启调试模式。
- 请重新解压小程序端 Demo 直接运行,若运行正常,建议参考 快速集成(小程序) 重新集成 SDK。
- 若问题依然存在,可以登录 微信小程序开发者社区 查找相关资料,也可以 提交工单 或致电 4009100100 联系我们。
小程序端如果需要上线或者部署正式环境怎么办?
- 请申请域名并做好备案工作。
- 请将服务端代码部署到申请的服务器上。
- 请将推流域名及 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