环境问题
小程序的环境要求是怎样的?
微信 App iOS 最低版本要求:7.0.9
微信 App Android 最低版本要求:7.0.8
小程序基础库最低版本要求:2.10.0
由于小程序测试号不具备 <live-pusher> 和 <live-player> 的使用权限,请使用企业小程序账号申请相关权限进行开发。
由于微信开发者工具不支持原生组件(即 <live-pusher> 和 <live-player> 标签),需要在真机上进行运行体验。
不支持 uniapp 开发环境,请使用原生小程序开发环境。
小程序端如果需要上线或者部署正式环境怎么办?
1. 请申请域名并做好备案工作。
2. 请将服务端代码部署到申请的服务器上。
3. 请将推流域名及 IM 受信域名 配置到小程序控制台 request 合法域名里面:
https://official.opensso.tencent-cloud.com
https://yun.tim.qq.com
https://cloud.tencent.com
https://webim.tim.qq.com
https://query.tencent-cloud.com
wss://wss.im.qcloud.com
wss://wss.tim.qq.com
https://web.sdk.qcloud.com
小程序是否支持uniapp、taro等开发环境?
TUICalling、TUIVoiceRoom 等原生组件暂不支持。
小程序端可以禁用重力感应吗?
小程序暂未开放重力感应设置接口。
小程序支持做最小化悬浮窗吗?
目前在页面存在 mode='RTC' 的 live-pusher 和至少一个 live-player 时,小程序在后台运行的情况下可以正常采集和播放音频,否则小程序在切后台时会终止音视频通话。
集成问题
小程序端有没有区分退房事件类型的,例如主动退房、被踢、解散房间?
EVENT.KICKED_OUT 表示服务端踢人或房间被解散退房,LOCAL_LEAVE 表示本地退房。
小程序端横屏推流的时候,为什么画面被裁剪了?
iOS 端可以通过打开竖屏方向锁定,Android 端暂时没有办法规避,需要小程序底层来修改。
小程序网络波动通过哪个值来判断?
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> 标签)的支持:
小程序推拉流标签不支持个人小程序,只支持企业类小程序。
小程序推拉流标签使用权限暂时只开放给有限 类目。
符合类目要求的小程序,需要在 微信公众平台> 开发 > 接口设置中自助开通该组件权限,如下图所示:
小程序端进入多人音视频看不到画面,该如何处理?
1. 请使用手机真机运行,微信开发者工具内部的模拟器目前暂不支持直接运行。
2. 请通过 wx.getSystemInfo 查询小程序基础库版本,小程序基础库最低版本要求为2.10.0。
3. 请确认小程序所属的类目,由于监管要求,小程序推拉流标签使用权限暂时只开放给有限 类目。
小程序端运行出错,该如何排查?
1. 请检查开通的小程序类目是否正确,<live-pusher> 和 <live-player> 标签是否已开启。
2. 请确认已将 小程序域名白名单 添加到小程序 request 合法域名,或已开启调试模式。
3. 请重新解压小程序端 Demo 直接运行,若运行正常,建议参考 快速集成(小程序) 重新集成 SDK。
4. 若问题依然存在,可以登录 微信小程序开发者社区 查找相关资料,也可以 提交工单 或致电 4009100100 联系我们。
<live-pusher> 和 <live-player> 标签使用及错误码?
是否能监听小程序缩小到后台?
可以。监听小程序的 onHide 方法,即可查看用户是否缩小到后台。
为什么拨打不通,或者被踢下线?
组件暂不支持多实例登入,不支持离线推送信令功能,请您确认账号登入的唯一性。
多实例:一个 userID 重复登入,或在不同端登入,将会引起信令的混乱。
离线推送:实例在线才能接收消息,实例离线时接收到的信令不会在上线后重新推送。即,小程序在后台与离线状态下,无法收到呼入提醒或来电提醒。
怎么区分主播观众?
在接入侧不需要设置主播/观众身份,SDK本身是通过是否有上行流来区分的,pusherAttributes的属性中
enableCamera || enableMic
为 true 的情况下是主播,音视频都没有上行的情况下是观众。小程序怎么接收 SEI 消息?
可以参照 微信小程序 API LivePusherContext.sendMessage 进行 SEI 发送,通过监听 [live-player] bindstatechange 2012 事件进行接收,代码参考如下:
小程序怎么使用字符串房间号进房?
在进房时使用 strRoomID ,该参数的优先级会高于 roomID。
怎么播放背景音乐?
pusherInstance 中提供了 playBGM 的方法,具体请参见 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 事件 |
实时音视频的小程序端、桌面浏览器端、PC 端是不是互通的?
是的,实时音视频支持全平台互通。