TUIRoomEvent API 简介
TUIRoomEvent API 是多人组件的事件接口。
事件列表
EVENT | 描述 |
错误事件 | |
踢出房间事件 | |
当前用户被踢下线 | |
userSig 过期事件 | |
主持人销毁房间事件 | |
房间名称修改事件 | |
房间发言模式修改事件 | |
所有成员摄像头使用权限改变事件 | |
所有成员麦克风使用权限改变事件 | |
所有成员发送消息状态改变事件 | |
房间最大麦位数修改事件 | |
远端用户进入房间事件 | |
远端用户离开房间事件 | |
用户角色改变事件 | |
用户视频状态改变事件 | |
用户音频状态改变事件 | |
用户发送消息状态事件 | |
用户音量改变事件 | |
用户网络质量改变事件 | |
麦位列表改变事件 | |
用户被踢下麦事件 | |
请求接收事件 | |
请求取消事件 | |
接收文本消息事件 | |
接收自定义消息事件 | |
设备变更事件 | |
屏幕分享停止事件,当用户使用浏览器自带的【停止分享】按钮结束屏幕共享时,该用户会收到 onUserScreenCaptureStopped 事件用来修改屏幕共享状态。 |
onError
错误事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onError, (error) => {console.log('TUIRoomError error', error);})
参数如下表所示:
参数 | 类型 | 含义 |
code | Number | 错误代码 |
message | String | 错误信息 |
onKickedOutOfRoom
踢出房间事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onKickedOutOfRoom, ({ roomId, reason, message }) => {console.log('roomEngine.onKickedOutOfRoom', roomId, message);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
reason | 用户被踢出房间原因 | |
message | String | 踢出房间信息 |
onKickedOffLine
当前用户被踢下线
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onKickedOffLine, ({ message }) => {console.log('roomEngine.onKickedOffLine', message);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
message | String | 用户在其他端登录信息 |
onUserSigExpired
userSig 过期事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserSigExpired, () => {console.log('roomEngine.onUserSigExpired');});
onRoomDismissed
主持人销毁房间事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRoomDismissed, ({ roomId }) => {console.log('roomEngine.onRoomDismissed', roomId);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
onRoomInfoChanged
房间信息修改事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRoomInfoChanged, ({ roomId, roomName }) => {console.log('roomEngine.onRoomInfoChanged', roomId, roomName);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
roomName | String | 房间名称 |
onRoomSpeechModeChanged
房间名称修改事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRoomSpeechModeChanged, ({ roomId, speechMode }) => {console.log('roomEngine.onRoomSpeechModeChanged', roomId, speechMode);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
speechMode | 发言模式 |
onAllUserCameraDisableChanged
所有成员摄像头使用权限改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onAllUserCameraDisableChanged, ({ isDisable }) => {console.log('roomEngine.onAllUserCameraDisableChanged', isDisable);});
参数如下表所示:
参数 | 类型 | 含义 |
isDisable | Boolean | 是否允许使用摄像头 |
onAllUserMicrophoneDisableChanged
所有成员麦克风使用权限改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, ({ isDisable }) => {console.log('roomEngine.onAllUserMicrophoneDisableChanged', isDisable);});
参数如下表所示:
参数 | 类型 | 含义 |
isDisable | Boolean | 是否允许使用麦克风 |
onSendMessageForAllUserDisableChanged
所有成员发送消息权限改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, ({ isDisable }) => {console.log('roomEngine.onSendMessageForAllUserDisableChanged', isDisable);});
参数如下表所示:
参数 | 类型 | 含义 |
isDisable | Boolean | 是否允许发送文字消息 |
onRoomMaxSeatCountChanged
房间最大麦位数修改事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRoomMaxSeatCountChanged, ({ maxSeatNumber }) => {console.log('roomEngine.onRoomMaxSeatCountChanged', maxSeatNumber);});
参数如下表所示:
参数 | 类型 | 含义 |
maxSeatNumber | Number | 最大麦位数量 |
onRemoteUserEnterRoom
远端用户进入房间事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRemoteUserEnterRoom, ({ roomId, userInfo }) => {console.log('roomEngine.onRemoteUserEnterRoom', roomId, userInfo);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
userInfo | 用户信息 |
onRemoteUserLeaveRoom
远端用户离开房间事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRemoteUserLeaveRoom, ({ roomId, userInfo }) => {console.log('roomEngine.onRemoteUserLeaveRoom', roomId, userInfo);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间号 |
userInfo | 用户信息 |
onUserRoleChanged
用户角色改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserRoleChanged, ({ userId, userRole }) => {console.log('roomEngine.onUserRoleChanged', userId, userRole);});
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
userRole | 用户变更后的角色 |
onUserMuteStateChanged
用户禁止发文字消息状态改变事件。
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserMuteStateChanged, ({ userId, muted }) => {console.log('roomEngine.onUserMuteStateChanged', userId, muted);});
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
muted | Boolean | 是否被禁止发文字消息 |
onUserVideoStateChanged
用户视频状态改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserVideoStateChanged, ({ userId, streamType, hasVideo, reason }) => {console.log('roomEngine.onUserVideoStateChanged', userId, streamType, hasVideo, reason);});
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
streamType | 用户流类型 | |
hasVideo | Boolean | 是否有视频流 |
reason | 变更原因, 自己操作/主持人操作 |
onUserAudioStateChanged
用户音频状态改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserAudioStateChanged, ({ userId, hasAudio, reason }) => {console.log('roomEngine.onUserAudioStateChanged', userId, hasAudio, reason);});
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
hasVideo | Boolean | 是否有音频流 |
reason | 变更原因,自己操作/主持人操作 |
onSendMessageForUserDisableChanged
有成员摄像头使用权限修改事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, ({ isDisable }) => {console.log('roomEngine.onSendMessageForAllUserDisableChanged', isDisable);});
参数如下表所示:
参数 | 类型 | 含义 |
isDisable | Boolean | 是否允许发送文字消息 |
onUserVoiceVolumeChanged
用户音量改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserVoiceVolumeChanged, ({ userVolumeList }) => {userVolumeList.forEach(userVolume => {console.log('roomEngine.onUserVoiceVolumeChanged', userVolume.userId, userVolume.volume);})});
参数如下表所示:
参数 | 类型 | 含义 |
userVolumes | 房间内所有用户的音量, 包含 userId 及 volume 信息,volume 区间为 1~100; |
onUserNetworkQualityChanged
用户网络质量改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserNetworkQualityChanged, ({ userNetworkList }) => {userNetworkList.forEach(userNetwork => {console.log('roomEngine.onUserNetworkQualityChanged', userNetwork.userId, userNetwork.quality, userNetwork.upLoss, userNetwork.downLoss, userNetwork.delay);})});
参数如下表所示:
参数 | 类型 | 含义 |
networkMap | 遍历网络质量等级 |
onSeatControlEnabled
麦位控制启用事件。
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onSeatControlEnabled, ({ enabled, maxSeatNumber }) => {console.log('roomEngine.onSeatControlEnabled', enabled, maxSeatNumber);});
参数如下表所示:
参数 | 类型 | 含义 |
enabled | Boolean | 是否启用 |
maxSeatNumber | Number | 最大麦位数量 |
onSeatListChanged
麦位列表改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onSeatListChanged, ({ seatList, seatedList, leftList }) => {console.log('roomEngine.onSeatListChanged',seatList, seatedList, leftList);});
参数如下表所示:
参数 | 类型 | 含义 |
seatList | 麦位列表 | |
seatedList | 新增麦位信息 | |
leftList | 离开的麦位信息 |
onKickedOffSeat
麦位列表改变事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onKickedOffSeat, ({ userId }) => {console.log('roomEngine.onKickedOffSeat', userId);});
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 被踢下麦的用户 ID |
onRequestReceived
错误事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRequestReceived, ({ request }) => {console.log('roomEngine.onRequestReceived', request);});
参数如下表所示:
参数 | 类型 | 含义 |
request | 请求接收 |
onRequestCancelled
请求取消事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onRequestCancelled, ({ requestId, userId }) => {console.log('roomEngine.onRequestCancelled', requestId, userId);});
参数如下表所示:
参数 | 类型 | 含义 |
requestId | String | 请求 ID |
userId | String | 取消请求的用户 ID |
onReceiveTextMessage
接收文本消息事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onReceiveTextMessage, ({ roomId, message }) => {console.log('roomEngine.onReceiveTextMessage', roomId, message);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间 ID |
message | 接收文本消息 |
onReceiveCustomMessage
接收自定义消息事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onReceiveCustomMessage, ({ roomId, message }) => {console.log('roomEngine.onReceiveCustomMessage', roomId, message);});
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 房间 ID |
message | 接收文本消息 |
onDeviceChange
设备变更事件
const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onDeviceChange, ({ deviceId, type, state }) => {console.log('roomEngine.onReceiveCustomMessage', deviceId, type, state);});
参数如下表所示:
参数 | 类型 | 含义 |
deviceId | String | 设备 ID |
type | 设备类型 | |
state | 设备变更状态 |
onUserScreenCaptureStopped
屏幕分享停止事件,当用户使用浏览器自带的 停止分享 按钮结束屏幕共享时,该用户会收到
onUserScreenCaptureStopped
事件用来修改屏幕共享状态。const roomEngine = new TUIRoomEngine();roomEngine.on(TUIRoomEvents.onUserScreenCaptureStopped, () => {console.log('roomEngine.onReceiveCustomMessage', deviceId, type, state);});