// 使用 npmnpm i @tencentcloud/tuiroom-engine-electron --save// 使用 pnpmpnpm i @tencentcloud/tuiroom-engine-electron --save// 使用 yarnyarn add @tencentcloud/tuiroom-engine-electron
API | 描述 |
监听 TUIRoomEngine ready 事件。 注意:TUIRoomEngine.login 以外的所有方法必须在监听到 TUIRoomEngine ready 事件且 TUIRoomEngine.login 方法执行成功后执行。 | |
登录 TUIRoomEngine | |
设置当前用户基本信息(用户名、用户头像) | |
获取当前用户基本信息(用户名、用户头像) | |
登出 TUIRoomEngine |
API | 描述 |
创建房间 | |
进入房间 | |
销毁房间 | |
离开房间 | |
获取房间信息 | |
更新房间的名字(仅群主或者管理员可以调用) | |
更新房间的发言模式(仅群主或者管理员可以调用) | |
获取当前房间用户列表 | |
获取用户的详细信息 |
API | 描述 |
设置本地流的渲染位置 | |
本地摄像头视频流采集 | |
关闭本地摄像头 | |
打开本地麦克风 | |
关闭本地麦克风 | |
设置本地视频的参数 | |
设置本地音频的参数 | |
开始向远端推本地视频流 | |
停止向远端推本地视频流 | |
开始向远端推本地音频流 | |
停止向远端推本地音频流 | |
设置远端流渲染的区域 | |
开始播放远端用户视频流 | |
停止播放远端用户视频流 | |
停止远端用户的音频流 |
API | 描述 |
请求远端用户打开媒体设备 | |
参会者向主持人申请打开设备 | |
关闭远端用户媒体设备 | |
取消已经发出的请求 | |
回复远端用户的请求 | |
改变用户的角色 | |
将用户踢出房间 | |
禁用/打开所有用户的媒体设备 | |
禁止/允许所有用户发送消息 | |
禁止/允许某个用户发送消息 |
API | 描述 |
开始屏幕共享 | |
停止屏幕共享 | |
获取屏幕分享列表 | |
切换屏幕分享窗口 |
API | 描述 |
设置房间麦位最大值 | |
获取麦位信息 | |
获取麦位 | |
释放麦位 | |
邀请其他人上麦(仅房间主持人和管理员可调用此方法) | |
将其他人踢下麦(仅房间主持人和管理员可调用此方法) | |
锁定某个麦位状态(仅房间主持人和管理员可调用此方法) |
API | 描述 |
发送文本消息 | |
发送自定义消息 |
API | 描述 |
获取摄像头设备列表 | |
获取麦克风设备列表 | |
获取扬声器设备列表 | |
设置要使用的摄像头设备 | |
设置要使用的麦克风设备 | |
设置要使用的扬声器设备 | |
获取当前正在使用的摄像头设备 | |
获取当前正在使用的麦克风设备 | |
获取当前正在使用的扬声器设备 | |
开始进行摄像头测试 | |
停止摄像头测试 |
API | 描述 |
API | 描述 |
获取 trtcCloud 实例 | |
获取 tim 实例 |
TUIRoomEngine.once('ready', () => {const roomEngine = new TUIRoomEngine();await TUIRoomEngine.init({sdkAppId: 0, // 填写您申请的 sdkAppIduserId: '', // 填写您业务对应的 userIduserSig: '', // 填写服务器或本地计算的 userSig});await roomEngine.createRoom({roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型name: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节roomType: TUIRoomType.kGroup, // 设置房间类型为 TUIRoomType.kGroup 类型});});
// 登录 TUIRoomEngineawait TUIRoomEngine.login({sdkAppId: 0, // 填写您申请的 sdkAppIduserId: '', // 填写您业务对应的 userIduserSig: '', // 填写服务器或本地计算的 userSig});
参数 | 类型 | 说明 | 默认值 | 含义 |
sdkAppId | number | 必填 | - | sdkAppId |
userId | string | 必填 | - | 用户ID建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 |
userSig | string | 必填 | - | userSig 签名 |
tim | TIM | 非必填 | - |
// 设置当前用户用户名及用户头像await TUIRoomEngine.setSelfInfo({userName: '', // 填写您的新用户名avatarUrl: '', // 填写您的新头像地址});
参数 | 类型 | 说明 | 默认值 | 含义 |
userName | string | 必填 | - | 用户名 |
avatarUrl | string | 必填 | - | 用户头像 |
// 获取当前用户用户名及用户头像const loginUserInfo = await TUIRoomEngine.getSelfInfo();
// 登出 TUIRoomEngineawait TUIRoomEngine.logout();
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型roomName: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节roomType: TUIRoomType.kConference, // 设置房间类型为 TUIRoomType.kConference 类型speechMode: TUISpeechMode.kFreeToSpeak, // 设置发言模式为自由发言模式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.kLivingRoom | |
speechMode | TUISpeechMode | 选填 | TUISpeechMode.kFreeToSpeak | 房间内发言模式 roomType 为 TUIRoomType.kConference (教育及会议场景) speechMode 设置为 TUISpeechMode.kFreeToSpeak,用户进房默认可以打开摄像头和麦克风
speechMode 设置为 TUISpeechMode.kApplyToSpeak,用户进房默认不打开摄像头和麦克风,需要向主持人申请打开摄像头或麦克风TUISpeechMode.kFreeToSpeak 及 TUISpeechMode.kApplyToSpeak 模式可互相切换
speechMode 设置为 TUISpeechMode.kSpeakAfterTakingSeat,用户进房后需要调用 takeSeat 上麦接口获取打开摄像头和麦克风的权限 roomType 为 TUIRoomType.kLivingRoom (直播场景) 时: speechMode 设置为 TUISpeechMode.kFreeToSpeak,上麦不需要主持人同意 speechMode 设置为 TUISpeechMode.kSpeakAfterTakingSeat,上麦需要主持人同意 TUISpeechMode.kFreeToSpeak 及 TUISpeechMode.kSpeakAfterTakingSeat 模式可互相切换 |
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 | 选填 | '' | 直播推流域名 |
const roomEngine = new TUIRoomEngine();const roomInfo = await roomEngine.enterRoom({roomId: '12345',});
参数 | 类型 | 说明 | 默认值 | 含义 |
roomId | string | 必填 | - | 房间号 |
const roomEngine = new TUIRoomEngine();await roomEngine.destroyRoom();
const roomEngine = new TUIRoomEngine();await roomEngine.exitRoom();
const roomEngine = new TUIRoomEngine();const roomInfo = roomEngine.fetchRoomInfo();
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({ roomId: '12345' });await roomEngine.updateRoomNameByAdmin({ roomName: '新的名字' });
参数 | 类型 | 说明 | 默认值 | 含义 |
roomName | string | 必填 | - | 更新房间的名字,要求 roomName 不为空字符串 |
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({ roomId: '12345' });await roomEngine.updateRoomSpeechModeByAdmin({speechMode: TUISpeechMode.kSpeakAfterTakingSeat // 更新为上麦后发言模式});
参数 | 类型 | 说明 | 默认值 | 含义 |
speechMode | TUISpeechMode | 必填 | - | 更新房间的发言模式 |
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 开始拉取用户 |
const roomEngine = new TUIRoomEngine();const userList = [];const userInfo = await roomEngine.getUserInfo({userId: 'user_12345',});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 根据 userId 获取该用户的详细信息 |
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 |
const roomEngine = new TUIRoomEngine();await roomEngine.setLocalVideoView({streamType: TUIVideoStreamType.kCameraStream,view: 'preview-camera',});await roomEngine.openLocalCamera();
const roomEngine = new TUIRoomEngine();await roomEngine.closeLocalCamera();
const roomEngine = new TUIRoomEngine();await roomEngine.openLocalMicrophone();
const roomEngine = new TUIRoomEngine();await roomEngine.closeLocalMicrophone();
const roomEngine = new TUIRoomEngine();await roomEngine.updateVideoQuality({quality: TUIVideoQuality.kVideoQuality_540p,});
参数 | 类型 | 说明 | 默认值 | 含义 |
quality | 必填 | - | 清晰 TUIVideoProfile.kVideoQuality_360P 标清 TUIVideoProfile.kVideoQuality_540P 高清 TUIVideoProfile.kVideoQuality_720P 超清 TUIVideoProfile.kVideoQuality_1080P |
const roomEngine = new TUIRoomEngine();await roomEngine.setLocalAudioProfile({audioProfile: TUIAudioProfile.kAudioProfileSpeech,});
参数 | 类型 | 说明 | 默认值 | 含义 |
audioProfile | 必填 | - | TUIAudioProfile.kAudioProfileSpeech:语言模式;采样率:16k TUIAudioProfile.kAudioProfileDefault:标准模式(或者默认模式);采样率:48k TUIAudioProfile.kAudioProfileMusic:音乐模式;采样率:48k |
const roomEngine = new TUIRoomEngine();await roomEngine.startPushLocalVideo();
const roomEngine = new TUIRoomEngine();await roomEngine.stopPushLocalVideo();
const roomEngine = new TUIRoomEngine();await roomEngine.startPushLocalAudio();
const roomEngine = new TUIRoomEngine();await roomEngine.stopPushLocalAudio();
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 |
const roomEngine = new TUIRoomEngine();await roomEngine.startPlayRemoteVideo({userId: 'user_1234',streamType: TUIVideoStreamType.kCameraStream,});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 用户 ID |
streamType | 必填 | - | 用户流类型 TUIVideoStreamType.kCameraStream 视频流 TUIVideoStreamType.kScreenStream 屏幕分享流 TUIVideoStreamType.kCameraStreamLow 低清视频流 |
const roomEngine = new TUIRoomEngine();await roomEngine.stopPlayRemoteVideo({userId: 'user_1234',streamType: TUIVideoStreamType.kCameraStream,});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 用户 ID |
streamType | 必填 | - | 用户流类型 TUIVideoStreamType.kCameraStream 视频流 TUIVideoStreamType.kScreenStream 屏幕分享流 TUIVideoStreamType.kCameraStreamLow 低清视频流 |
const roomEngine = new TUIRoomEngine();await roomEngine.muteRemoteAudioStream({userId: 'user_1234',isMute: true,});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 用户 ID |
isMute | boolean | 必填 | - | 是否停止远端用户的音频 |
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 | 选填 | 空函数 | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调 |
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 | 选填 | 空函数 | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调 |
const roomEngine = new TUIRoomEngine();await roomEngine.closeRemoteDeviceByAdmin({userId: 'user_1234',device: TUIMediaDevice.kMicrophone, //关闭麦克风});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 用户 ID |
device | 必填 | - | 媒体设备类型(摄像头/麦克风/屏幕共享) |
const roomEngine = new TUIRoomEngine();await roomEngine.cancelRequest({requestId: '', // 请使用实际 requestId});
参数 | 类型 | 说明 | 默认值 | 含义 |
requestId | string | 必填 | - | 请求 ID |
const roomEngine = new TUIRoomEngine();// 同意远端的请求await roomEngine.responseRemoteRequest({requestId: '', // 请使用实际 requestIdagree: true,});// 拒绝远端的请求await roomEngine.responseRemoteRequest({requestId: '', // 请使用实际 requestIdagree: false,});
参数 | 类型 | 说明 | 默认值 | 含义 |
requestId | string | 必填 | - | 请求 ID |
agree | boolean | 必填 | - | 是否同意 |
// Example 1: 禁止所有用户打开麦克风await roomEngine.disableDeviceForAllUserByAdmin({device: TUIMediaDevice.kMicrophone,isDisable: true,})// Example 2: 允许所有用户打开麦克风await roomEngine.disableDeviceForAllUserByAdmin({device: TUIMediaDevice.kMicrophone,isDisable: false,})
参数 | 类型 | 说明 | 默认值 | 含义 |
device | 必填 | - | 被禁用的媒体设备类型(摄像头/麦克风/屏幕共享) | |
isDisable | boolean | 必填 | - | 是否被禁止 |
await roomEngine.disableSendingMessageForAllUser({isDisable: true,});
参数 | 类型 | 说明 | 默认值 | 含义 |
isDisable | boolean | 必填 | - | 是否被禁用 |
await roomEngine.disableSendingMessageByAdmin({userId: 'user_1234',isDisable: true,});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 用户 ID |
isDisable | boolean | 必填 | - | 是否被禁用 |
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 |
const roomEngine = new TUIRoomEngine();await roomEngine.kickRemoteUserOutOfRoom({userId: 'user_1234',});
参数 | 类型 | 说明 | 默认值 | 含义 |
userId | string | 必填 | - | 用户 ID |
const roomEngine = new TUIRoomEngine();await roomEngine.createRoom({ roomId: '12345' });await roomEngine.setMaxSeatCount({ maxSeatCount: 16 })
参数 | 类型 | 说明 | 默认值 | 含义 |
maxSeatCount | number | 必填 | - | 设置房间麦位最大值 |
const roomEngine = new TUIRoomEngine();const seatList = await roomEngine.getSeatList();
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 | 选填 | 空函数 | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调 |
const roomEngine = new TUIRoomEngine();await roomEngine.leaveSeat();
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 | 必填 | - | 超时时间。若 timeout 设置为 0 ,则无超时时间 |
requestCallback | Function | 选填 | 空函数 | 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调 |
const roomEngine = new TUIRoomEngine();const requestId = await roomEngine.kickUserOffSeatByAdmin({seatIndex: 0,userId: 'user_1234',});
参数 | 类型 | 说明 | 默认值 | 含义 |
seatIndex | number | 必填 | - | 麦位 index |
userId | string | 必填 | - | 用户 ID |
const roomEngine = new TUIRoomEngine();await roomEngine.lockSeatByAdmin({seatIndex: 0,lockParams: {lockSeat: true,lockVideo: true,lockAudio: true,},});
参数 | 类型 | 说明 | 默认值 | 含义 |
seatIndex | number | 必填 | - | 麦位索引 |
lockParams | 必填 | - | 锁麦参数 |
const roomEngine = new TUIRoomEngine();await roomEngine.startScreenSharingElectron('targetId');
参数 | 类型 | 说明 | 默认值 | 含义 |
targetId | string | 选填 | - | 分享窗口 ID,可从 getScreenSharingTarget 获取 |
const roomEngine = new TUIRoomEngine();await roomEngine.stopScreenSharingElectron();
const roomEngine = new TUIRoomEngine();const screenList = await roomEngine.getScreenSharingTarget();
const roomEngine = new TUIRoomEngine();await roomEngine.selectScreenSharingTarget('targetId');
参数 | 类型 | 说明 | 默认值 | 含义 |
targetId | string | 必填 | - | 分享窗口 ID,可从 getScreenSharingTarget 获取 |
const roomEngine = new TUIRoomEngine();await roomEngine.sendTextMessage({messageText: 'hello, everyone',});
参数 | 类型 | 说明 | 默认值 | 含义 |
messageText | string | 必填 | - | 文本消息内容 |
const roomEngine = new TUIRoomEngine();await roomEngine.sendCustomMessage({messageText: '{ data:'', description: ''}',});
参数 | 类型 | 说明 | 默认值 | 含义 |
messageText | string | 必填 | - | 自定义消息内容 |
const roomEngine = new TUIRoomEngine();const cameraList = await roomEngine.getCameraDevicesList();for (i = 0; i < cameraList.length; i++) {var camera = cameraList[i];console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId);}
const roomEngine = new TUIRoomEngine();const micList = await roomEngine.getMicDevicesList();for (i = 0; i < micList.length; i++) {var mic = micList[i];console.info("mic deviceName: " + mic.deviceName + " deviceId:" + mic.deviceId);}
const roomEngine = new TUIRoomEngine();const speakerList = await roomEngine.getSpeakerDevicesList();for (i = 0; i < speakerList.length; i++) {var speaker = speakerList[i];console.info("speaker deviceName: " + speaker.deviceName + " deviceId:" + speaker.deviceId);}
const roomEngine = new TUIRoomEngine();await roomEngine.setCurrentCameraDevice({ deviceId: '' });
参数 | 类型 | 说明 | 默认值 | 含义 |
deviceId | string | 必填 | - | 从 getCameraDevicesList 中得到的设备 ID |
const roomEngine = new TUIRoomEngine();await roomEngine.setCurrentMicDevice({ deviceId: '' });
参数 | 类型 | 说明 | 默认值 | 含义 |
deviceId | string | 必填 | - | 从 getMicDevicesList 中得到的设备 ID |
const roomEngine = new TUIRoomEngine();await roomEngine.setCurrentSpeakerDevice({ deviceId: '' });
参数 | 类型 | 说明 | 默认值 | 含义 |
deviceId | string | 必填 | - | 从 getSpeakerDevicesList 中得到的设备 ID |
const roomEngine = new TUIRoomEngine();const currentCameraDevice = roomEngine.getCurrentCameraDevice();
const roomEngine = new TUIRoomEngine();const currentMicDevice = roomEngine.getCurrentMicDevice();
const roomEngine = new TUIRoomEngine();const currentSpeakerDevice = roomEngine.getCurrentSpeakerDevice();
const roomEngine = new TUIRoomEngine();await roomEngine.startCameraDeviceTest({ view: 'test-preview' });
参数 | 类型 | 说明 | 默认值 | 含义 |
view | string | 必填 | - | 显示摄像头测试的视频区域, 传入的 view 为承载预览画面 div 元素的 Id |
const roomEngine = new TUIRoomEngine();await roomEngine.stopCameraDeviceTest();
const roomEngine = new TUIRoomEngine();roomEngine.on(event, func);
参数 | 类型 | 说明 | 默认值 | 含义 |
event | 必填 | - | TUIRoomEngine 事件列表 | |
func | Function | 必填 | - | 事件回调函数 |
const roomEngine = new TUIRoomEngine();roomEngine.off(event, func);
参数 | 类型 | 说明 | 默认值 | 含义 |
event | 必填 | - | TUIRoomEngine 事件列表 | |
func | Function | 必填 | - | 事件回调函数 |
const roomEngine = new TUIRoomEngine();const trtcCloud = roomEngine.getTRTCCloud();
const roomEngine = new TUIRoomEngine();const trtcCloud = roomEngine.getTIM();
本页内容是否解决了您的问题?