本地、远端调用不同的 RTC SDK 接口,微信小程序抛出错误,都可能触发事件,调用 client.on 来开启对这些事件的监听。你可以在回调函数中实现监听到指定事件后程序需要做出的反应。例如,监听到 DISCONNECT 时进行重连。
开启事件监听后,可以调用 client.on 来停止监听该事件。
你可以通过以下方式来创建 events 对象:
const { EVENTS } = require('./VolcEngineRTC_MiniApp');
client.on(EVENTS.STREAM_ADDED, e => void): void
以下情况都将触发该事件:
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
e.screen | boolean | 是否为屏幕共享流 |
e.streamPublishState | object | 远端音视频发布状态:
|
client.on(EVENTS.STREAM_REMOVED, e => void): void
以下情况都将触发该事件:
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
e.screen | boolean | 是否为屏幕共享流 |
client.on(EVENTS.UPDATE_URL, e => void): void
推流或拉流地址更新。
例如,断网重连成功后,将重新发布/订阅,成功之后 RTMP URL 地址会相应更新。
在收到此事件后,你需要将事件中的 url
参数赋值给 live-pusher
或 live-player
。
参数名 | 类型 | 说明 |
---|---|---|
uid | string | 用户ID。本端或远端用户 ID |
screen | boolean | 是否为屏幕流 |
url | string | 更新后的推拉流地址 |
client.on(EVENTS.STREAM_FAILED, e => void): void
推流或拉流异常。
在收到此事件后,你可以尝试重新发布/订阅,或者通知用户发布/订阅失败。
参数名 | 类型 | 说明 |
---|---|---|
uid | string | 用户ID。本端或远端用户 ID |
screen | boolean | 是否为屏幕流 |
reason | string | 流异常的原因 |
client.on(EVENTS.MUTE_AUDIO, e => void): void
远端用户在视频流启动状态下,禁用了音频流。
如果远端用户音、视频流都禁用了,则触发 STREAM_REMOVED。
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
e.screen | boolean | 是否为屏幕共享流 |
client.on(EVENTS.UNMUTE_AUDIO, e => void): void
远端用户在视频流启动状态下,启动音频流。
如果远端用户从音视频全部禁用状态切换为启用时,则触发 STREAM_ADDED。
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
e.screen | boolean | 是否为屏幕共享流 |
client.on(EVENTS.MUTE_VIDEO, e => void): void
远端用户在音频流启动状态下,禁用了视频流。
如果远端用户音、视频流都禁用了,则触发 STREAM_REMOVED。
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
e.screen | boolean | 是否为屏幕共享流 |
client.on(EVENTS.UNMUTE_VIDEO, e => void): void
远端用户在音频流启动状态下,启动视频流。
如果远端用户从音视频全部禁用状态切换为启用时,则触发 STREAM_ADDED。
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
e.screen | boolean | 是否为屏幕共享流 |
client.on(EVENTS.CLIENT_BANNED, () => void): void
远端有相同uid的用户进入房间,当前用户被踢出房间
client.on(EVENTS.PEER_ONLINE, e => void): void
以下两种情况都将触发该事件:
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
client.on(EVENTS.PEER_LEAVE, e => void): void
远端用户退出房间
参数名 | 类型 | 说明 |
---|---|---|
e.uid | string | 指定远端用户的 ID |
client.on(EVENTS.ERROR, e => void): void
收到 WebSocket 错误回调 SocketTask.onError 将触发该事件,请根据返回的错误描述和原因进行调试。
参数名 | 类型 | 说明 |
---|---|---|
e.code | number | 微信小程序 SocketTask.onError 回调返回的错误码 |
e.reason | string | 错误描述和原因 |
client.on(EVENTS.DISCONNECT, e => void): void
WebSocket 的异常中断事件,即 SocketTask.onClose 的返回值 code 不为 1000,可尝试重连。
参数名 | 类型 | 说明 |
---|---|---|
e.code | number | 微信小程序 WebSocket 连接关闭事件的回调 SocketTask.onClose 返回的错误码 |
e.reason | string | 错误描述和原因 |