此贴总结了目前用户使用 Agora 微信小程序 SDK 过程中遇到的各类常见问题,希望能够帮助开发者们更简单地去集成微信小程序音视频实时通信 SDK。也欢迎各位开发者们在本帖中讨论和补充。
更多 微信小程序 SDK 相关链接:
Agora Miniapp SDK for WeChat API Reference
使用 Agora 微信小程序 SDK 快速实现视频直播
SDK 下载
Demo 下载
更多 微信小程序 SDK 相关链接:
Agora Miniapp SDK for WeChat API Reference
使用 Agora 微信小程序 SDK 快速实现视频直播
SDK 下载
Demo 下载
1、出现错误码 901 绝大部分原因是没开小程序的服务权限,或没有配置域名,或 uid 参数格式不正确。请参考快速开始中的开发环境要求完成设置后再尝试;
2、请确保你的微信小程序基础库支持 live-pusher 及 live-player 组件,且这两个组件在微信开发者工具中打开。
3、请检查是否配置了以下7个域名:
https://miniapp.agoraio.cn
https://miniapp-1.agoraio.cn
https://miniapp-2.agoraio.cn
https://miniapp-3.agoraio.cn
https://miniapp-4.agoraio.cn
https://uni-webcollector.agora.io
wss://miniapp.agoraio.cn
4、请检查网络情况,确保网络环境正常。
5、请确保 join 时的 uid 参数是 int 型,channel 参数是 string 型。
6、903 这个错误通常是网络原因引起的;也可能是因为鉴权失败,如没有填 Token,或 Token 无效导致的。请检查并填入有效的 Token 进行尝试。
调用如下 API 实现保存和打开日志:
AgoraMiniappSDK.LOG.onlog = (text) => {
Utils.log(text);
};
AgoraMiniappSDK.LOG.setLogLevel(-1);
Utils.log
是我们 demo 里的一个方法;onlog
中的 text
是一条字符串,如果想要获取日志,需要自己将 text
保存写在一个文件中,然后将该文件提供给我们。
Web 与小程序互通时,Web 端只支持 H264 模式的编码,不支持 VP8。将 Web SDK 的 index.html
文件修改为如下设置即可:
client = AgoraRtc.createClient({mode: "live", codec: "h264"});
可以通过设置小程序的 live-pusher 组件中的 waiting-image 属性来处理。设置后,推流端退到后台时,可以推送静态图片来维持推流,其他端会收到本端预设的 waiting-image 图片来代替视频流。 除非通过一些方式 (例如后台播放背景音乐),小程序会在某些场景下断开 websocket 或者 rtmp 连接,例如点击右上角按钮将程序退到后台。这种情况下,若回到前台后收到 error code 904 或 501,则应使用 SDK 进行重连,具体方法请参考 重新加入频道 rejoin 中的描述。
微信小程序目前最多支持 5 个 websocket,Agora 小程序会占用 1 个 websocket,如果超过了支持的范围,会导致 Agora 小程序获取不到 websocket 从而报错。目前 android 端小程序开发者工具有个 bug,在未校验环境下连接超过 1 个以上的 websocket 会出问题。这里可以通过在本地设置中取消勾选不校验合法域名、 web-view (业务域名)、 TLS 版本以及 HTTPS 证书 来规避。
v2.4.0 前的 SDK 版本,直接使用微信小程序的接口处理即可。在小程序的 live-pusher 组件中,通过设置 enable-camera 来实现开启/关闭摄像头。详见 小程序 live-pusher 组件文档。
v2.4.0 起, 可以通过 Client.muteLocal 接口处理。
该问题可能是由于 Native SDK 中的 setVideoEncoderConfiguratio
设置的方向模式 orientationMode
为 ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE
导致的。解决方法是,将方向模式改成 ORIENTATION_MODE.ORIENTATION_MODE_FIXED_PORTRAIT
就可以解决问题。
客户端调用 client.publish 方法后,会回调一个以 rtmp 开头的临时地址,这个地址就分别是 live-player 和 live-pusher 组件中的 rtmp 播放地址 和 rtmp 推流地址。
请确认有正确完成以下步骤:
1、请确保你的微信小程序基础库支持 live-pusher 及 live-player 组件,且这两个组件在微信开发者工具中打开。只有特定行业的认证企业账号才可使用这两个组件。详情请参考:https://developers.weixin.qq.com/miniprogram/dev/component/live-player.html
2、请在 微信开发者工具 中查看,是否有开启音视频功能?
3、在微信公众平台账号的开发设置中,给予以下域名请求权限:
https://miniapp.agoraio.cn
https://miniapp-1.agoraio.cn
https://miniapp-2.agoraio.cn
https://miniapp-3.agoraio.cn
https://miniapp-4.agoraio.cn
https://uni-webcollector.agora.io
wss://miniapp.agoraio.cn
小程序因端上受限于小程序音视频组件,故目前还不支持该功能。
增加角色判断,如果是观众就不用执行 meeting.js 里的 publish 方法。
目前不行,如果频道内有大小流的用户,小程序默认就是拉大流。
你好; 小程序端支持接收 web端分享的屏幕吗、
如果支持的话,怎么判断哪个是 分享的屏幕呢?
支持的。需要自己在业务逻辑层去做区分哈,分别记录屏幕共享的 uid 和摄像头流的 uid,然后根据 uid 做区分。
多谢回复;
再问一下: 共享的屏幕 是不是 可以被当做一个 live-player 处理。
和你们提供的小程序demo中 , 人进去的效果一样;
另外,人数限制在demo中是10个人;
我在代码中看到了设置了最大人数。我如果修改为20人,会有什么比较大的影响吗?