小程序开发常见问题

以下是一些需要小程序音视频开发需要注意的事项,随着小程序的迭代,下面的问题可能已经解决了。

断线重连时间1分钟后才开始第二次重新连接

断线后,小程序连接WebSocket的有一个默认超时时间,默认是60秒。断线后,小程序创建 WebSocket 连接不能马上返回网络连接错误,需要过了超时时间后,小程序才会向上抛出网络连接错误,导致SDK需要等待60秒后才能进行第二次重连。

建议配置小程序项目配置里的WebSocket超时时间为10秒或更短。

小程序切换至后台后,再切换回前台,如果超时时间过长,将会导致在超时事件触发前,不会进行重连,而要等到超时时间结束后,才会报错进行第二次重连。

{
  ...
  "networkTimeout": {
    "connectSocket": 10000
  },
  ...
}

声音断断续续

可能的原因是<live-player ></live-player>上的 max-bitrate 设置得过小导致的,建议修改为:

音视频通话和纯音频通话之间切换后,声音有5秒至8秒钟的延迟

有段时间,小程序通过setData改变值来控制live-pusher组件的enable-camera属性来实现纯音频通话(关闭摄像头)或音视频通话(打开摄像头),会导致对端接收到的视频画面和音频不同步,有延迟。后来采用的方法是,切换纯音频前,先断开WebRTC,然后关闭摄像头,再重新连接。这个过程相当于手动控制live-pusher组件进行推流或者停止推流,建议将autopush属性设置为false

要么使用autopush来自动控制音视频的媒体推流,要么手动调用 livePusherContext 上的 startstop 方法来控制推流。