推流/拉流处理可以参考或直接使用 GitHub 上开源代码。
可以通过设置小程序的 live-pusher 组件中的 waiting-image 属性来处理。设置后,推流端退到后台时,可以推送静态图片来维持推流,其他端会收到本端预设的 waiting-image 图片来代替视频流。 除非通过一些方式 (例如后台播放背景音乐),小程序会在某些场景下断开 websocket 或者 rtmp 连接,例如点击右上角按钮将程序退到后台。这种情况下,若回到前台后收到 error code 904 或 501,则应使用 SDK 进行重连,具体方法请参考 重新加入频道 rejoin 中的描述。
这个问题可能是因为启用了其它 Websocket,但没有开启验证 Https 引起的。如需启用其它的 Websocket,请查看本地设置,不要勾选“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”。
直接使用微信小程序的接口处理即可。在小程序的 live-pusher 组件中,通过设置 enable-camera 来实现开启/关闭摄像头。详见 小程序 live-pusher 组件文档。
频道中有小程序 SDK 和 Native SDK 时,可以选择如下一种方式实现互通:
该问题可能是由于 Native SDK 中的 setVideoEncoderConfiguration
设置的方向模式 orientationMode
为 ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE
导致的。解决方法是,将方向模式改成 ORIENTATION_MODE.ORIENTATION_MODE_FIXED_PORTRAIT
就可以解决问题。
Web 与小程序互通时,Web 端只支持 H264 模式的编码,不支持 VP8。将 Web SDK 的 index.html
文件修改为如下设置即可:client = AgoraRtc.createClient({mode: "live", codec: "h264"})
;
客户端调用 client.publish 方法后,会回调一个以 rtmp 开头的临时地址,这个地址就分别是 live-player 和 live-pusher 组件中的 rtmp 播放地址 和 rtmp 推流地址。
调用如下 API 实现保存和打开日志:
保存日志:
AgoraMiniappSDK.LOG.onlog = (text) => {
Utils.log(text);
};
打开日志:AgoraMiniappSDK.LOG.setLogLevel(-1)
;
通常,客户端初始化失败,会伴随着错误码 901 或 903,处理方法如下:
Agora Miniapp SDK for WeChat 在调用 API 或运行时,可能会返回一个错误码对象,也可能会返回一个错误码。详细可以参考 错误码和警告码 进行排查。
微信小程序目前不支持在 WebView 网页中调用 Agora Web SDK 的接口。
要在微信小程序中快速实现实时音视频功能,你可以在小程序项目中集成 Agora 微信小程序 SDK。详见集成微信小程序 SDK。
微信小程序的背景音频需要用微信小程序的原生 API 来集成实现,Agora 微信小程序 SDK 无法建立音频播放器。
你可以通过 wx.getBackgroundAudioManager()
接口获取全局唯一的背景音频管理器,并调用 BackgroundAudioManager
类提供的接口来管理背景音频。
你可以尝试在微信开发者工具中开启增强编译。
view
标签覆盖用于实时音视频播放和录制的 live-player
和 live-pusher
标签吗?你可以使用小程序的 cover-view
标签覆盖 live-player
和 live-pusher
组件。详见微信小程序官方文档。