You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
微信小程序 3.3
事件
复制全文
下载 pdf
事件

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

const { EVENTS } = require('./VolcEngineRTC_MiniApp');

STREAM_ADDED

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

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

  • 本地用户进入房间时,远端用户在此之前已经开始发布音视频流
  • 本地用户进入房间后,远端用户发布音视频流
  • 远端用户从音视频全部禁用状态切换为启用

传入参数

参数名类型说明
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

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

  • 远端停止发布音视频流
  • 本地接收远端音视频流失败
  • 远端用户禁用了音、视频流

传入参数

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

UPDATE_URL

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

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

传入参数

参数名类型说明
e.uidstring用户ID。本端或远端用户 ID
e.screenboolean是否为屏幕流
e.urlstring更新后的推拉流地址

STREAM_FAILED

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

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

传入参数

参数名类型说明
e.uidstring用户ID。本端或远端用户 ID
e.screenboolean是否为屏幕流
e.reasonstring流异常的原因

MUTE_AUDIO

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

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

传入参数

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

UNMUTE_AUDIO

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

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

传入参数

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

MUTE_VIDEO

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

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

传入参数

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

UNMUTE_VIDEO

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

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

传入参数

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

CLIENT_BANNED

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

当前用户被踢出房间。你可以通过 ErrorCode 来判断具体被踢出的原因。

传入参数

参数名类型说明
e.errorCodeErrorCode错误码

PEER_ONLINE

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

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

  • 当本地用户进入房间时,房间内已经有其他用户
  • 当本地用户进入房间后,有远端用户进入该房间时

同一房间内,单个小程序端用户最多只能收到 20 个用户的进房通知。详细限制和说明,请参见微信小程序 SDK 媒体能力上限

传入参数

参数名类型说明
e.uidstring指定远端用户的 ID

PEER_LEAVE

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

远端用户退出房间

传入参数

参数名类型说明
e.uidstring指定远端用户的 ID

ERROR

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

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

传入参数

参数名类型说明
e.codenumber微信小程序 SocketTask.onError 回调返回的错误码
e.reasonstring错误描述和原因

DISCONNECT

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

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

传入参数

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

LOGIN_BANNED

client.on(EVENTS.LOGIN_BANNED, () => void): void

因相同 userId 在其他设备上登录,当前设备被踢下线。通常发生在“您的账号已在其他设备登录”的场景。

触发场景

  1. 设备 A 使用 userId 成功调用 login。
  2. 设备 B 使用相同的 userId 再次成功调用 login。
  3. 设备 A 将会收到此 LOGIN_BANNED 事件,其登录状态失效。

USER_MESSAGE_RECEIVED

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

收到来自房间内的其他用户发送的点对点文本消息。
当房间内其他用户调用 sendUserMessage 发送点对点文本消息时,会触发此事件。

传入参数

参数名类型说明
e.uidstring发送消息的用户 ID
e.messagestring收到的文本消息

USER_BINARY_MESSAGE_RECEIVED

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

收到来自房间内的其他用户发送的点对点的二进制消息。
当房间内其他用户调用 sendUserBinaryMessage 发送点对点二进制消息时,会触发此事件。

传入参数

参数名类型说明
e.uidstring发送消息的用户 ID
e.messageArrayBuffer收到的二进制消息

ROOM_MESSAGE_RECEIVED

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

收到房间内其他用户广播的文本消息。
当房间内其他用户调用 sendRoomMessage 广播文本消息时,会触发此事件。

传入参数

参数名类型说明
e.uidstring发送消息的用户 ID
e.messagestring收到的文本消息

ROOM_BINARY_MESSAGE_RECEIVED

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

收到房间内其他用户广播的二进制消息。
当房间内其他用户调用 sendRoomBinaryMessage 广播二进制消息时,会触发此事件。

传入参数

参数名类型说明
e.uidstring发送消息的用户 ID
e.messageArrayBuffer收到的二进制消息

USER_MESSAGE_RECEIVED_OUTSIDE_ROOM

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

收到房间外用户发送的点对点的文本消息。
当调用 sendUserMessageOutsideRoom 给房间外指定用户发送点对点文本消息时,该用户会收到该事件。

传入参数

参数名类型说明
e.uidstring发送消息的用户 ID
e.messagestring收到的文本消息

USER_BINARY_MESSAGE_RECEIVED_OUTSIDE_ROOM

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

收到房间外用户发送的点对点的二进制消息。
当调用 sendUserBinaryMessageOutsideRoom 给房间外用户发送点对点二进制消息时,该用户会收到该事件。

传入参数

参数名类型说明
e.uidstring发送消息的用户 ID
e.messageArrayBuffer收到的二进制消息

SERVER_PARAMS_SET_RESULT

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

设置业务服务器参数的结果回调。
当调用 setServerParams 设置业务服务器参数时,会触发此事件。

传入参数

参数名类型说明
e.errornumber错误码,0 表示成功
e.messagestring结果信息
最近更新时间:2025.08.15 19:38:27
这个页面对您有帮助吗?
有用
有用
无用
无用