TUIRoomEngine 简介
TUIRoomEngine SDK 提供了房间管理、多人实时音视频互动、屏幕分享、成员管理、即时聊天等功能。
安装方式:
// 使用 npmnpm i @tencentcloud/tuiroom-engine-wx --save// 使用 pnpmpnpm i @tencentcloud/tuiroom-engine-wx --save// 使用 yarnyarn add @tencentcloud/tuiroom-engine-wx
TUIRoomEngine API
TUIRoomEngine 静态方法
API  | 描述  | 
监听 TUIRoomEngine ready 事件。 注意: TUIRoomEngine.login 以外的所有方法必须在监听到 TUIRoomEngine ready 事件且 TUIRoomEngine.login 方法执行成功后执行。   | |
登录 TUIRoomEngine  | |
设置当前用户基本信息(用户名、用户头像)  | |
获取当前用户基本信息(用户名、用户头像)  | |
登出 TUIRoomEngine  | 
roomEngine 房间管理 API
API  | 描述  | 
创建房间  | |
进入房间  | |
销毁房间  | |
离开房间  | |
获取房间信息  | |
更新房间的名字(仅群主或者管理员可以调用)  | |
更新房间的发言模式(仅群主或者管理员可以调用)  | |
获取当前房间用户列表  | |
获取用户的详细信息  | 
roomEngine 音视频 API
API  | 描述  | 
设置本地流的渲染位置  | |
本地摄像头视频流采集  | |
关闭本地摄像头  | |
打开本地麦克风  | |
关闭本地麦克风  | |
设置本地视频的分辨率  | |
设置本地视频流的分辨率模式  | |
设置本地视频的编码参数  | |
设置本地音频的参数  | |
开始向远端推本地视频流  | |
停止向远端推本地视频流  | |
停止向远端推本地音频流  | |
开始向远端推本地音频流  | |
设置远端流渲染的区域  | |
开始播放远端用户视频流  | |
停止播放远端用户视频流  | |
停止远端用户的音频流  | 
roomEngine 成员管理 API
API  | 描述  | 
请求远端用户打开媒体设备  | |
参会者向主持人申请打开设备  | |
关闭远端用户媒体设备  | |
取消已经发出的请求  | |
回复远端用户的请求  | |
改变用户的角色  | |
将用户移出房间  | |
禁用/打开所有用户的媒体设备  | |
禁止/允许所有用户发送消息  | |
禁止/允许某个用户发送消息  | 
roomEngine 麦位管理 API
API  | 描述  | 
设置房间麦位最大值  | |
获取麦位信息  | |
获取麦位  | |
释放麦位  | |
邀请其他人上麦(仅房间主持人和管理员可调用此方法)  | |
将其他人移下麦(仅房间主持人和管理员可调用此方法)  | |
锁定某个麦位状态(仅房间主持人和管理员可调用此方法)  | 
roomEngine 消息发送 API
API  | 描述  | 
发送文本消息  | |
发送自定义消息  | 
roomEngine 事件监听 API
API  | 描述  | 
roomEngine 其他 API
API  | 描述  | 
获取 trtcCloud 实例  | |
获取 tim 实例  | 
API 详情
once
监听 TUIRoomEngine 'ready' 事件。
TUIRoomEngine.once('ready', () => {const roomEngine = new TUIRoomEngine();await TUIRoomEngine.login({sdkAppId: 0, // 填写您申请的 sdkAppIduserId: '', // 填写您业务对应的 userIduserSig: '', // 填写服务器或本地计算的 userSig});await roomEngine.createRoom({roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型name: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节roomType: TUIRoomType.kGroup, // 设置房间类型为 TUIRoomType.kGroup 类型});});
login
登录 TUIRoomEngine, 您必须在登录 TUIRoomEngine 之后才可以调用 TUIRoomEngine 及其实例的其他方法。
// 登录 TUIRoomEngineawait TUIRoomEngine.login({sdkAppId: 0, // 填写您申请的 sdkAppIduserId: '', // 填写您业务对应的 userIduserSig: '', // 填写服务器或本地计算的 userSig});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
sdkAppId  | number  | 必填  | -  | |
userId  | String  | 必填  | -  | 用户ID建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。  | 
userSig  | String  | 必填  | -  | userSig 签名  | 
tim  | TIM  | 非必填  | -  | 
Returns Promise<void>
setSelfInfo
设置当前用户基本信息(用户名、用户头像)。
// 设置当前用户用户名及用户头像await TUIRoomEngine.setSelfInfo({userName: '', // 填写您的新用户名avatarUrl: '', // 填写您的新头像地址});// 设置当前用户用户名, 用户头像及用户自定义消息await TUIRoomEngine.setSelfInfo({userName: '', // 填写您的新用户名avatarUrl: '', // 填写您的新头像地址customInfo: { // 填写用户自定义信息Tag_Profile_Custom_Test: 'value1',Tag_Profile_Custom_profile: 'value2',},})
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userName  | String  | 必填  | -  | 用户名  | 
avatarUrl  | String  | 必填  | -  | 用户头像  | 
customInfo  | object  | 选填  | -  | 用户自定义资料  | 
说明:
Returns Promise<void>
getSelfInfo
获取当前用户基本信息(用户名、用户头像)。
// 获取当前用户用户名及用户头像const loginUserInfo = await TUIRoomEngine.getSelfInfo();
logout
登出 TUIRoomEngine。
// 登出 TUIRoomEngineawait TUIRoomEngine.logout();
Returns Promise<void>
createRoom
主持人创建房间,调用 createRoom 的用户为房间的所有者。创建房间时可设置房间 ID、房间名称、房间类型、是否开启麦位控制、是否允许加入用户开启音视频、发送消息等功能。
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型roomName: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节roomType: TUIRoomType.kConference, // 设置房间类型为 TUIRoomType.kConference 类型isSeatEnabled: false, // 设置是否开启麦位控制isMicrophoneDisableForAllUser: false, // 设置是否允许加入用户打开麦克风isCameraDisableForAllUser: false, // 设置是否允许加入用户打开摄像头isMessageDisableForAllUser: false, // 设置是否允许加入用户发送消息});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
roomId  | string  | 必填  | -  | 房间 ID,roomId 限制长度为64字节,且仅支持以下范围的字符集: 大小写英文字母(a-zA-Z) 数字(0-9) 空格 ! # $ % & ( ) + - : ; < = . > ? @ [ ] ^ _ { } | ~ ,  | 
roomName  | string  | 选填  | roomId  | 房间名称,默认值为 roomId,不可传入空字符串  | 
roomType  | 选填  | TUIRoomType.kConference  | 房间类型 办公协同、医疗问诊、远程会议、教育场景,roomType 设置为 TUIRoomType.kConference 电商直播、语聊房场景,roomType 设置为 TUIRoomType.kLive  | |
isSeatEnabled  | boolean  | 选填  | false  | 是否开启麦位控制,默认不开启  | 
seatMode  | 选填  | TUISeatMode.kFreeToTake  | 上麦模式(开启麦位控制后生效),默认值为 TUISeatMode.kFreeToTake
自由上麦模式,台下观众可以自由上麦,无需申请,seatMode 设置为 TUISeatMode.kFreeToTake
申请上麦模式,台下观众上麦需要房主或者管理员同意后才能上麦,seatMode 设置为 TUISeatMode.kApplyToTake  | |
isMicrophoneDisableForAllUser  | boolean  | 选填  | false  | 是否开启全员禁麦,默认不开启全员禁麦  | 
isCameraDisableForAllUser  | boolean  | 选填  | false  | 是否开启全员禁画,默认不开启全员禁画  | 
isMessageDisableForAllUser  | boolean  | 选填  | false  | 是否允许成员发送消息,默认不禁止  | 
maxSeatCount  | number  | 选填  | -  | 最大麦位数量 roomType 为 TUIRoomType.kConference (教育及会议场景) 时,maxSeatCount 值不做限制 roomType 为 TUIRoomType.kLivingRoom (直播场景) 时,maxSeatCount 最大限制为 16  | 
enableCDNStreaming  | boolean  | 选填  | false  | 是否开启 CDN 直播流  | 
cdnStreamDomain  | string  | 选填  | ''  | 直播推流域名  | 
Returns Promise<void>
enterRoom
进入房间接口。
const roomEngine = new TUIRoomEngine();const roomInfo = await roomEngine.enterRoom({roomId: '12345',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
roomId  | String  | 必填  | -  | 房间号  | 
该接口返回当前房间信息。
destroyRoom
解散房间接口,解散房间必须由房间所有者发起,解散房间之后房间不可进入。
const roomEngine = new TUIRoomEngine();await roomEngine.destroyRoom();
Returns Promise<void>
exitRoom
离开房间接口,用户在执行 enterRoom 之后可通过 exitRoom 离开房间。
const roomEngine = new TUIRoomEngine();await roomEngine.exitRoom();
Returns Promise<void>
fetchRoomInfo
获取房间信息。
const roomEngine = new TUIRoomEngine();const roomInfo = roomEngine.fetchRoomInfo();
updateRoomNameByAdmin
更新当前房间的名字(仅群主或者管理员可以调用)。
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({ roomId: '12345' });await roomEngine.updateRoomNameByAdmin({ roomName: '新的名字' });
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
roomName  | String  | 必填  | -  | 更新房间的名字,要求 roomName 不为空字符串  | 
updateRoomSpeechModeByAdmin
更新房间的发言模式(仅群主或者管理员可以调用)。
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({ roomId: '12345' });await roomEngine.updateRoomSpeechModeByAdmin({speechMode: TUISpeechMode.kSpeakAfterTakingSeat // 更新为上麦后发言模式});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
speechMode  | TUISpeechMode  | 必填  | -  | 更新房间的发言模式  | 
getUserList
获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 100 个。
const roomEngine = new TUIRoomEngine();const userList = [];let result;do {result = await globalProperties.roomEngine.getUserList();userList.push(...result.userInfoList);} while (result.nextSequence !== 0)
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
nextSequence  | number  | 选填  | 0  | 偏移量,默认从 0 开始拉取用户  | 
Returns:Promise<Array>  result
result.nextSequence 下一次拉取群组用户的偏移量,如果 result.nextSequence 为 0 则代表 userList 全部拉取完毕。
result.userInfoList 本次拉取的 userList。
getUserInfo
获取用户的详细信息。
const roomEngine = new TUIRoomEngine();const userList = [];const userInfo = await roomEngine.getUserInfo({userId: 'user_12345',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 根据 userId 获取该用户的详细信息  | 
该接口返回指定用户的用户信息。
setLocalVideoView
设置本地流的渲染位置。
const roomEngine = new TUIRoomEngine();// 设置本地摄像头流的播放区域为 id 是 'preview-camera' 的 div 元素await roomEngine.setLocalVideoView({streamType: TUIVideoStreamType.kCameraStream,view: 'preview-camera',});// 设置本地屏幕分享流的播放区域为 id 是 'preview-screen' 的 div 元素await roomEngine.setLocalVideoView({streamType: TUIVideoStreamType.kScreenStream,view: 'preview-screen',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
streamType  | 必填  | -  | 本地流类型  | |
view  | String  | 必填  | -  | streamType 对应的流渲染的 div 元素的 id  | 
Returns:Promise<void>
openLocalCamera
打开本地摄像头,开始视频流采集。
const roomEngine = new TUIRoomEngine();await roomEngine.setLocalVideoView({streamType: TUIVideoStreamType.kCameraStream,view: 'preview-camera',});// case 1: 桌面端打开摄像头await roomEngine.openLocalCamera();// case 2: 移动端使用前置摄像头打开视频预览await roomEngine.openLocalCamera({ isFrontCamera: true });// case 3: 移动端使用后置摄像头打开视频预览await roomEngine.openLocalCamera({ isFrontCamera: false });
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
isFrontCamera  | boolean  | 选填  | -  | 设置移动端打开 本地预览视频的默认摄像头,该参数仅对移动端有效  | 
Returns:Promise<void>
closeLocalCamera
关闭本地摄像头。
const roomEngine = new TUIRoomEngine();await roomEngine.closeLocalCamera();
Returns:Promise<void>
openLocalMicrophone
打开本地麦克风,开始采集音频流。
const roomEngine = new TUIRoomEngine();await roomEngine.openLocalMicrophone();
Returns:Promise<void>
closeLocalMicrophone
关闭本地麦克风。
const roomEngine = new TUIRoomEngine();await roomEngine.closeLocalMicrophone();
Returns:Promise<void>
updateVideoQuality
设置本地视频流的编码参数,默认为 TUIVideoProfile.kVideoQuality_720P。
const roomEngine = new TUIRoomEngine();await roomEngine.updateVideoQuality({quality: TUIVideoQuality.kVideoQuality_540p,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
quality  | 必填  | -  | 清晰 TUIVideoProfile.kVideoQuality_360P 标清 TUIVideoProfile.kVideoQuality_540P 高清 TUIVideoProfile.kVideoQuality_720P 超清 TUIVideoProfile.kVideoQuality_1080P  | 
Returns:Promise<void>
setVideoResolutionMode
设置本地视频流的分辨率模式,默认为  TUIResolutionMode.kResolutionMode_Landscape。
const roomEngine = new TUIRoomEngine();await roomEngine.setVideoResolutionMode({type: TUIVideoStreamType.kCameraStream,resolutionMode: TUIResolutionMode.kResolutionMode_Landscape,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
streamType  | 必填  | -  | 本地流类型  | |
resolutionMode  | 必填  | TUIResolutionMode.kResolutionMode_Landscape  | 分辨率模式  | 
Returns:Promise<void>
updateVideoQualityEx
设置本地视频流的编码参数。
const roomEngine = new TUIRoomEngine();await roomEngine.updateVideoQualityEx({streamType: TUIVideoStreamType.kCameraStream,encoderParams: {quality: TUIVideoQuality.kVideoQuality_720p,fps: 15,bitrate: 2000,resMode: TUIResolutionMode.kResolutionMode_Landscape,}});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
streamType  | 必填  | -  | 本地流类型  | |
encoderParams  | 必填  | -  | 详细编码参数  | 
updateAudioQuality
设置本地音频的参数。
注意:
该方法需要在 openLocalMicrophone 之前进行设置,否则不会生效。
const roomEngine = new TUIRoomEngine();await roomEngine.setLocalAudioProfile({audioProfile: TUIAudioQuality.kAudioProfileSpeech,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
audioProfile  | 必填  | -  | TUIAudioQuality.kAudioProfileSpeech:语言模式;采样率:16k TUIAudioQuality.kAudioProfileDefault:标准模式(或者默认模式);采样率:48k TUIAudioQuality.kAudioProfileMusic:音乐模式;采样率:48k  | 
Returns:Promise<void>
startPushLocalVideo
进房后会默认向远端推本地视频流,该接口用于停止推流后重新向远端推本地视频流。
const roomEngine = new TUIRoomEngine();await roomEngine.startPushLocalVideo();
Returns:Promise<void>
stopPushLocalVideo
停止向远端推本地视频流。
const roomEngine = new TUIRoomEngine();await roomEngine.stopPushLocalVideo();
Returns:Promise<void>
startPushLocalAudio
进房后会默认向远端推本地音频流,该接口用于停止推流后重新向远端推本地音频流。
const roomEngine = new TUIRoomEngine();await roomEngine.startPushLocalAudio();
Returns:Promise<void>
stopPushLocalAudio
停止向远端推本地音频流。
const roomEngine = new TUIRoomEngine();await roomEngine.stopPushLocalAudio();
Returns:Promise<void>
muteLocalAudio
开始/停止向远端推本地音频流。
const roomEngine = new TUIRoomEngine();await roomEngine.muteLocalAudio();
Returns:Promise<void>
unmuteLocalAudio
开始/停止向远端推本地音频流。
const roomEngine = new TUIRoomEngine();await roomEngine.muteLocalAudio();
Returns:Promise<void>
setRemoteVideoView
设置远端流渲染的区域。
const roomEngine = new TUIRoomEngine();// 设置远端用户视频流在 id 为 'remote_preview_camera' 的区域播放await roomEngine.setRemoteVideoView({userId: 'user_1234',streamType: TUIVideoStreamType.kCameraStream,view: 'remote_preview_camera',});// 设置远端用户屏幕分享流在 id 为 'remote_preview_screen' 的区域播放await roomEngine.setRemoteVideoView({userId: 'user_1234',streamType: TUIVideoStreamType.kScreenStream,view: 'remote_preview_screen',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
streamType  | 必填  | -  | 用户流类型  | |
view  | String  | 必填  | -  | 播放远端用户流的 div 元素的 id  | 
Returns:Promise<void>
startPlayRemoteVideo
开始播放远端用户视频流。
const roomEngine = new TUIRoomEngine();await roomEngine.startPlayRemoteVideo({userId: 'user_1234',streamType: TUIVideoStreamType.kCameraStream,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
streamType  | 必填  | -  | 用户流类型 TUIVideoStreamType.kCameraStream 视频流 TUIVideoStreamType.kScreenStream 屏幕分享流 TUIVideoStreamType.kCameraStreamLow 低清视频流  | 
Returns:Promise<void>
stopPlayRemoteVideo
停止播放远端用户视频流。
const roomEngine = new TUIRoomEngine();await roomEngine.stopPlayRemoteVideo({userId: 'user_1234',streamType: TUIVideoStreamType.kCameraStream,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
streamType  | 必填  | -  | 用户流类型 TUIVideoStreamType.kCameraStream 视频流 TUIVideoStreamType.kScreenStream 屏幕分享流 TUIVideoStreamType.kCameraStreamLow 低清视频流  | 
Returns:Promise<void>
muteRemoteAudioStream
停止远端用户的音频流。
const roomEngine = new TUIRoomEngine();await roomEngine.muteRemoteAudioStream({userId: 'user_1234',isMute: true,});
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
isMute  | boolean  | 必填  | -  | 是否停止远端用户的音频  | 
openRemoteDeviceByAdmin
请求远端用户打开媒体设备。
const roomEngine = new TUIRoomEngine();const requestId = roomEngine.openRemoteDeviceByAdmin({userId: 'user_1234',device: TUIMediaDevice.kMicrophone //请求的设备为麦克风timeout: 0,requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {switch (requestCallbackType) {case TUIRequestCallbackType.kRequestAccepted:// 请求被接受break;case TUIRequestCallbackType.kRequestRejected:// 请求被拒绝break;case TUIRequestCallbackType.kRequestCancelled:// 请求已取消break;case TUIRequestCallbackType.kRequestTimeout:// 请求超时break;case TUIRequestCallbackType.kRequestError:// 请求错误break;default:break;}},});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
device  | 必填  | -  | 媒体设备类型(摄像头/麦克风/屏幕共享)  | |
timeout  | number  | 必填  | -  | 超时时间。若 timeout 设置为 0 ,则无超时时间  | 
requestCallback  | Function  | 选填  | 空函数  | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调  | 
Returns:Promise<string> requestId
该接口返回 requestId,用户可使用该 requestId 调用 cancelRequest 接口取消请求。
applyToAdminToOpenLocalDevice
参会者向主持人申请打开设备。
const roomEngine = new TUIRoomEngine();const requestId = roomEngine.applyToAdminToOpenLocalDevice({device: TUIMediaDevice.kMicrophone //请求的设备为麦克风timeout: 0,requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {switch (requestCallbackType) {case TUIRequestCallbackType.kRequestAccepted:// 请求被接受break;case TUIRequestCallbackType.kRequestRejected:// 请求被拒绝break;case TUIRequestCallbackType.kRequestCancelled:// 请求已取消break;case TUIRequestCallbackType.kRequestTimeout:// 请求超时break;case TUIRequestCallbackType.kRequestError:// 请求错误break;default:break;}},});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
device  | 必填  | -  | 媒体设备类型(摄像头/麦克风/屏幕共享)  | |
timeout  | number  | 必填  | -  | 超时时间。若 timeout 设置为 0 ,则无超时时间  | 
requestCallback  | Function  | 选填  | 空函数  | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调  | 
Returns:Promise<string> requestId
该接口返回 requestId,用户可使用该 requestId 调用 cancelRequest 接口取消请求。
closeRemoteDeviceByAdmin
关闭远端用户媒体设备。
const roomEngine = new TUIRoomEngine();await roomEngine.closeRemoteDeviceByAdmin({userId: 'user_1234',device: TUIMediaDevice.kMicrophone, //关闭麦克风});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
device  | 必填  | -  | 媒体设备类型(摄像头/麦克风/屏幕共享)  | 
Returns:Promise<void>
cancelRequest
取消已经发出的请求。
const roomEngine = new TUIRoomEngine();await roomEngine.cancelRequest({requestId: '', // 请使用实际 requestId});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
requestId  | String  | 必填  | -  | 请求 ID  | 
Returns:Promise<void>
responseRemoteRequest
回复远端用户的请求。
const roomEngine = new TUIRoomEngine();// 同意远端的请求await roomEngine.responseRemoteRequest({requestId: '', // 请使用实际 requestIdagree: true,});// 拒绝远端的请求await roomEngine.responseRemoteRequest({requestId: '', // 请使用实际 requestIdagree: false,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
requestId  | String  | 必填  | -  | 请求 ID  | 
agree  | boolean  | 必填  | -  | 是否同意  | 
Returns:Promise<void>
disableDeviceForAllUserByAdmin
禁止/允许所有用户打开媒体设备(此接口对于房主和管理员无效)。
// Example 1: 禁止所有用户打开麦克风await roomEngine.disableDeviceForAllUserByAdmin({device: TUIMediaDevice.kMicrophone,isDisable: true,})// Example 2: 允许所有用户打开麦克风await roomEngine.disableDeviceForAllUserByAdmin({device: TUIMediaDevice.kMicrophone,isDisable: false,})
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
device  | 必填  | -  | 被禁用的媒体设备类型(摄像头/麦克风/屏幕共享)  | |
isDisable  | boolean  | 必填  | -  | 是否被禁止  | 
Returns:Promise<void>
disableSendingMessageForAllUser
所有用户的是否允许发消息(此接口对于房主和管理员无效)。
await roomEngine.disableSendingMessageForAllUser({isDisable: true,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
isDisable  | boolean  | 必填  | -  | 是否被禁用  | 
Returns:Promise<void>
disableSendingMessageByAdmin
特定用户是否被允许发消息。
await roomEngine.disableSendingMessageByAdmin({userId: 'user_1234',isDisable: true,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
isDisable  | boolean  | 必填  | -  | 是否被禁用  | 
Returns:Promise<void>
changeUserRole
改变用户的角色(仅主持人可调用该接口)。
const roomEngine = new TUIRoomEngine();// 将房间移交给用户 user_1234await roomEngine.changeUserRole({userId: 'user_1234',role: TUIRole.kRoomOwner,});// 将用户 user_1234 设置为房间管理员await roomEngine.changeUserRole({userId: 'user_1234',userRole: TUIRole.kAdministrator,});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
userRole  | 必填  | -  | 用户角色 主持人  TUIRole.kRoomOwner 管理员  TUIRole.kAdministrator 普通成员  TUIRole.kGeneralUser  | 
Returns:Promise<void>
kickRemoteUserOutOfRoom
将用户移出房间(仅主持人和管理员可调用该接口)。
const roomEngine = new TUIRoomEngine();await roomEngine.kickRemoteUserOutOfRoom({userId: 'user_1234',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
userId  | String  | 必填  | -  | 用户 ID  | 
Returns:Promise<void>
setMaxSeatCount
设置房间麦位最大值
roomType 为 TUIRoomType.kConference (教育及会议场景) 时,maxSeatCount 值不做限制;
roomType 为 TUIRoomType.kLivingRoom (直播场景) 时,maxSeatCount 最大限制为 16;
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({ roomId: '12345' });await roomEngine.setMaxSeatCount({ maxSeatCount: 16 })
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
maxSeatCount  | number  | 必填  | -  | 设置房间麦位最大值  | 
Returns:Promise<void> 
getSeatList
获取麦位列表。
const roomEngine = new TUIRoomEngine();const seatList = await roomEngine.getSeatList();
seatList 为当前房间所有麦位列表。
takeSeat
麦下用户可调用
takeSeat成为麦上用户,仅麦上用户可发布本地音视频流。当
roomInfo.roomType为TUIRoomType.kConference且roomInfo.speechMode为TUISpeechMode.kSpeakAfterTakingSeat时,普通用户调用 takeSeat方法需要等待主持人/管理员的同意后成为麦上用户。当
roomInfo.roomType为TUIRoomType.kLivingRoom且roomInfo.speechMode为TUISpeechMode.kFreeToSpeak时, 普通用户调用 takeSeat 方法成功后即为麦上用户主持人&管理员调用
takeSeat成功后即为麦上用户。麦上用户的变更通过
TUIRoomEvents.onSeatListChanged通知所有用户。const roomEngine = new TUIRoomEngine();// 情景一:主持人/管理员上麦// 情景二:当 roomInfo.roomType 为 TUIRoomType.kConference// 且 roomInfo.speechMode 为 TUISpeechMode.kSpeakAfterTakingSeat 时,普通用户上麦await roomEngine.takeSeat({seatIndex: -1,timeout: 0,});// 情景三:当 roomInfo.enableSeatControl 为 true 时,普通用户上麦const requestId = await roomEngine.instance?.takeSeat({seatIndex: -1,timeout: 0,requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {switch (requestCallbackType) {case TUIRequestCallbackType.kRequestAccepted:// 请求被接受break;case TUIRequestCallbackType.kRequestRejected:// 请求被拒绝break;case TUIRequestCallbackType.kRequestCancelled:// 请求已取消break;case TUIRequestCallbackType.kRequestTimeout:// 请求超时break;case TUIRequestCallbackType.kRequestError:// 请求错误break;default:break;}},});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
seatIndex  | number  | 必填  | -  | 麦位 index, 无麦位序号时设置为 -1  | 
timeout  | number  | 必填  | -  | 超时时间。若 timeout 设置为 0,则无超时时间  | 
requestCallback  | Function  | 选填  | 空函数  | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调  | 
Returns:Promise<string> requestId
当 roomInfo.enableSeatControl 为 true,普通用户调用该接口时返回 requestId,普通用户可使用该 requestId 调用 cancelRequest 接口取消上麦请求。
leaveSeat
释放麦位。
const roomEngine = new TUIRoomEngine();await roomEngine.leaveSeat();
Returns:Promise<void>
takeUserOnSeatByAdmin
邀请其他人上麦。
const roomEngine = new TUIRoomEngine();const requestId = roomEngine.takeUserOnSeatByAdmin({seatIndex: 0,userId: 'user_1234',timeout: 0,requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {switch (requestCallbackType) {case TUIRequestCallbackType.kRequestAccepted:// 请求被接受break;case TUIRequestCallbackType.kRequestRejected:// 请求被拒绝break;case TUIRequestCallbackType.kRequestCancelled:// 请求已取消break;case TUIRequestCallbackType.kRequestTimeout:// 请求超时break;case TUIRequestCallbackType.kRequestError:// 请求错误break;default:break;}},});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
seatIndex  | number  | 必填  | -  | 麦位 index  | 
userId  | string  | 必填  | -  | 用户 ID  | 
timeout  | number  | 必填  | -  | 超时时间,设置为 0 时,无超时时间  | 
requestCallback  | Function  | 选填  | 空函数  | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调  | 
Returns:Promise<string> requestId
该接口返回 requestId,用户可使用该 requestId 调用 cancelRequest 接口取消请求。
kickUserOffSeatByAdmin
要求其他人下麦。
const roomEngine = new TUIRoomEngine();const requestId = await roomEngine.kickUserOffSeatByAdmin({seatIndex: 0,userId: 'user_1234',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
seatIndex  | number  | 必填  | -  | 麦位 index  | 
userId  | string  | 必填  | -  | 用户 ID  | 
Returns:Promise<void>
lockSeatByAdmin
锁定某个麦位状态(仅房间主持人和管理员可调用此方法)。
const roomEngine = new TUIRoomEngine();await roomEngine.lockSeatByAdmin({seatIndex: 0,lockParams: {lockSeat: true,lockVideo: true,lockAudio: true,},});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
seatIndex  | number  | 必填  | -  | 麦位索引  | 
lockParams  | 必填  | -  | 锁麦参数  | 
Returns:Promise<void>
sendTextMessage
发送文本消息。
const roomEngine = new TUIRoomEngine();await roomEngine.sendTextMessage({messageText: 'hello, everyone',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
messageText  | String  | 必填  | -  | 文本消息内容  | 
Returns:Promise<void>
sendCustomMessage
发送自定义消息。
const roomEngine = new TUIRoomEngine();await roomEngine.sendCustomMessage({messageText: '{ data:'', description: ''}',});
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
messageText  | String  | 必填  | -  | 自定义消息内容  | 
Returns:Promise<void>
switchCamera
切换前后置摄像头,该接口适用于移动端。
// 移动端切换为前置摄像头await roomEngine.switchCamera({ isFrontCamera: true });// 移动端切换为后置摄像头await roomEngine.switchCamera({ isFrontCamera: false });
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
isFrontCamera  | boolean  | 必填  | -  | 是否切换为前置摄像头  | 
Returns:Promise<void>
on
监听 roomEngine 的事件。
const roomEngine = new TUIRoomEngine();roomEngine.on(event, func);
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
event  | 必填  | -  | TUIRoomEngine 事件列表  | |
func  | Function  | 必填  | -  | 事件回调函数  | 
Returns:void
off
取消监听 roomEngine 的事件。
const roomEngine = new TUIRoomEngine();roomEngine.off(event, func);
参数:
参数  | 类型  | 说明  | 默认值  | 含义  | 
event  | 必填  | -  | TUIRoomEngine 事件列表  | |
func  | Function  | 必填  | -  | 事件回调函数  | 
Returns:void
getTRTCCloud
获取 trtcCloud 实例。
const roomEngine = new TUIRoomEngine();const trtcCloud = roomEngine.getTRTCCloud();
getTIM
const roomEngine = new TUIRoomEngine();const tim = roomEngine.getTIM();
Returns:TIMgetTRTCCloud