本地、远端调用不同的 RTC SDK 接口,微信小程序抛出错误,都可能触发事件,调用 client.on 来开启对这些事件的监听。你可以在回调函数中实现监听到指定事件后程序需要做出的反应。例如,监听到 DISCONNECT 时进行重连。
开启事件监听后,可以调用 client.on 来停止监听该事件。
你可以通过以下方式来创建 events 对象:

const { EVENTS } = require('./VolcEngineRTC_MiniApp');
typescript
STREAM_ADDED
client.on(EVENTS.STREAM_ADDED, e => void): void
typescript

以下情况都将触发该事件:

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
e.screenboolean是否为屏幕共享流

e.streamPublishState

object

远端音视频发布状态:
true:启用
false:禁用

{
    audio: true, // 音频
    video: true // 视频
}

Available since 3.1.1

STREAM_REMOVED
client.on(EVENTS.STREAM_REMOVED, e => void): void
typescript

以下情况都将触发该事件:

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
e.screenboolean是否为屏幕共享流
UPDATE_URL
client.on(EVENTS.UPDATE_URL, e => void): void
typescript

推流或拉流地址更新。
例如,断网重连成功后,将重新发布/订阅,成功之后 RTMP URL 地址会相应更新。
在收到此事件后,你需要将事件中的 url 参数赋值给 live-pusher 或 live-player。

传入参数
参数名类型说明
uidstring用户ID。本端或远端用户 ID
screenboolean是否为屏幕流
urlstring更新后的推拉流地址
STREAM_FAILED
client.on(EVENTS.STREAM_FAILED, e => void): void
typescript

推流或拉流异常。
在收到此事件后,你可以尝试重新发布/订阅,或者通知用户发布/订阅失败。

传入参数
参数名类型说明
uidstring用户ID。本端或远端用户 ID
screenboolean是否为屏幕流
reasonstring流异常的原因
MUTE_AUDIO
client.on(EVENTS.MUTE_AUDIO, e => void): void
typescript

远端用户在视频流启动状态下,禁用了音频流。
如果远端用户音、视频流都禁用了,则触发 STREAM_REMOVED。

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
e.screenboolean是否为屏幕共享流
UNMUTE_AUDIO
client.on(EVENTS.UNMUTE_AUDIO, e => void): void
typescript

远端用户在视频流启动状态下,启动音频流。
如果远端用户从音视频全部禁用状态切换为启用时,则触发 STREAM_ADDED。

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
e.screenboolean是否为屏幕共享流
MUTE_VIDEO
client.on(EVENTS.MUTE_VIDEO, e => void): void
typescript

远端用户在音频流启动状态下,禁用了视频流。
如果远端用户音、视频流都禁用了,则触发 STREAM_REMOVED。

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
e.screenboolean是否为屏幕共享流
UNMUTE_VIDEO
client.on(EVENTS.UNMUTE_VIDEO, e => void): void
typescript

远端用户在音频流启动状态下,启动视频流。
如果远端用户从音视频全部禁用状态切换为启用时,则触发 STREAM_ADDED。

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
e.screenboolean是否为屏幕共享流
CLIENT_BANNED
client.on(EVENTS.CLIENT_BANNED, () => void): void
typescript

远端有相同uid的用户进入房间,当前用户被踢出房间

PEER_ONLINE
client.on(EVENTS.PEER_ONLINE, e => void): void
typescript

以下两种情况都将触发该事件:

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
PEER_LEAVE
client.on(EVENTS.PEER_LEAVE, e => void): void
typescript

远端用户退出房间

传入参数
参数名类型说明
e.uidstring指定远端用户的 ID
ERROR
client.on(EVENTS.ERROR, e => void): void
typescript

收到 WebSocket 错误回调 SocketTask.onError 将触发该事件,请根据返回的错误描述和原因进行调试。

传入参数
参数名类型说明
e.codenumber微信小程序 SocketTask.onError 回调返回的错误码
e.reasonstring错误描述和原因
DISCONNECT
client.on(EVENTS.DISCONNECT, e => void): void
typescript

WebSocket 的异常中断事件,即 SocketTask.onClose 的返回值 code 不为 1000,可尝试重连。

传入参数
参数名类型说明
e.codenumber微信小程序 WebSocket 连接关闭事件的回调 SocketTask.onClose 返回的错误码
e.reasonstring错误描述和原因