UNPKG

@tencentcloud/tuiroom-engine-js

Version:
1,341 lines (1,337 loc) 122 kB
import { ChatSDK } from '@tencentcloud/chat'; export { default as TIM, default as TencentCloudChat } from '@tencentcloud/chat'; import TRTCCloud, { TRTCScreenCaptureSourceInfo, TRTCDeviceInfo } from 'trtc-cloud-js-sdk'; export { Rect, default as TRTCCloud, TRTCDeviceInfo, TRTCDeviceState, TRTCDeviceType, TRTCLogLevel, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, TRTCVideoEncParam, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoRotation, TRTCVideoStreamType, TRTCVolumeInfo } from 'trtc-cloud-js-sdk'; declare enum TUIErrorCode { ERR_SUCC = 0, ERR_FAILED = -1, ERR_FREQ_LIMIT = -2, ERR_REPEAT_OPERATION = -3, ERR_SDKAPPID_NOT_FOUND = -1000, ERR_INVALID_PARAMETER = -1001, ERR_SDK_NOT_INITIALIZED = -1002, ERR_PERMISSION_DENIED = -1003, ERR_REQUIRE_PAYMENT = -1004, ERR_CAMERA_START_FAILED = -1100, ERR_CAMERA_NOT_AUTHORIZED = -1101, ERR_CAMERA_OCCUPIED = -1102, ERR_CAMERA_DEVICE_EMPTY = -1103, ERR_MICROPHONE_START_FAILED = -1104, ERR_MICROPHONE_NOT_AUTHORIZED = -1105, ERR_MICROPHONE_OCCUPIED = -1106, ERR_MICROPHONE_DEVICE_EMPTY = -1107, ERR_GET_SCREEN_SHARING_TARGET_FAILED = -1108, ERR_START_SCREEN_SHARING_FAILED = -1109, ERR_ROOM_ID_NOT_EXIST = -2100, ERR_OPERATION_INVALID_BEFORE_ENTER_ROOM = -2101, ERR_EXIT_NOT_SUPPORTED_FOR_ROOM_OWNER = -2102, ERR_OPERATION_NOT_SUPPORTED_IN_CURRENT_ROOM_TYPE = -2103, ERR_ROOM_ID_INVALID = -2105, ERR_ROOM_ID_OCCUPIED = -2106, ERR_ROOM_NAME_INVALID = -2107, ERR_ALREADY_IN_OTHER_ROOM = -2108, ERR_NEED_PASSWORD = -2109, ERR_WRONG_PASSWORD = -2110, ERR_ROOM_USER_FULL = -2111, ERR_USER_NOT_EXIST = -2200, ERR_USER_NOT_ENTERED = -2201, ERR_NEED_OWNER_PERMISSION = -2300, ERR_NEED_ADMIN_PERMISSION = -2301, ERR_REQUEST_NO_PERMISSION = -2310, ERR_REQUEST_ID_INVALID = -2311, ERR_REQUEST_ID_REPEAT = -2312, ERR_REQUEST_ID_CONFLICT = -2313, ERR_MAX_SEAT_COUNT_LIMIT = -2340, ERR_ALREADY_IN_SEAT = -2341, ERR_SEAT_OCCUPIED = -2342, ERR_SEAT_LOCKED = -2343, ERR_SEAT_INDEX_NOT_EXIST = -2344, ERR_USER_NOT_IN_SEAT = -2345, ERR_ALL_SEAT_OCCUPIED = -2346, ERR_SEAT_NOT_SUPPORT_LINK_MIC = -2347, ERR_OPEN_MICROPHONE_NEED_SEAT_UNLOCK = -2360, ERR_OPEN_MICROPHONE_NEED_PERMISSION_FROM_ADMIN = -2361, ERR_OPEN_CAMERA_NEED_SEAT_UNLOCK = -2370, ERR_OPEN_CAMERA_NEED_PERMISSION_FROM_ADMIN = -2371, ERR_OPEN_SCREEN_SHARE_NEED_SEAT_UNLOCK = -2372, ERR_OPEN_SCREEN_SHARE_NEED_PERMISSION_FROM_ADMIN = -2373, ERR_SEND_MESSAGE_DISABLED_FOR_ALL = -2380, ERR_SEND_MESSAGE_DISABLED_FOR_CURRENT = -2381 } type TUIRoomInfo = { roomId: string; roomName: string; roomType: TUIRoomType; isSeatEnabled: boolean; seatMode: TUISeatMode; password: string; isMicrophoneDisableForAllUser: boolean; isScreenShareDisableForAllUser: boolean; isCameraDisableForAllUser: boolean; isMessageDisableForAllUser: boolean; maxSeatCount: number; roomOwner: string; ownerId: string; ownerName: string; ownerAvatarUrl: string; createTime: number; roomMemberCount: number; }; type TUIEnterRoomOptions = { password?: string; }; type TUILoginUserInfo = { userId: string; userName: string; avatarUrl: string; customInfo: Record<string, any>; }; type TUISeatLockParams = { lockSeat: boolean; lockVideo: boolean; lockAudio: boolean; }; declare enum TUIRole { kRoomOwner = 0, kAdministrator = 1, kGeneralUser = 2 } /** * 消息结构体 * @typedef {object} TUIMessage * @property {string} messageId 消息 Id * @property {string} message 消息内容 * @property {number} timestamp 时间戳信息, 精确到秒 * @property {TUIRole} userId 用户 Id * @property {boolean} userName 用户名称 * @property {boolean} avatarUrl 用户头像地址 */ type TUIMessage = { messageId: string; message: string; timestamp: number; userId: string; userName: string; avatarUrl: string; }; declare enum TUIVideoQuality { kVideoQuality_360p = 1, kVideoQuality_540p = 2, kVideoQuality_720p = 3, kVideoQuality_1080p = 4 } declare enum TUIAudioQuality { kAudioProfileSpeech = 0, kAudioProfileDefault = 1, kAudioProfileMusic = 2 } declare enum TUIVideoStreamType { kCameraStream = 0, kScreenStream = 1, kCameraStreamLow = 2 } declare enum TUINetworkQuality { kQualityUnknown = 0, kQualityExcellent = 1, kQualityGood = 2, kQualityPoor = 3, kQualityBad = 4, kQualityVeryBad = 5, kQualityDown = 6 } /** * 消息结构体 * @typedef {object} TUINetwork * @property {string} userId 用户 Id * @property {TUINetworkQuality} quality 网络质量 * @property {number} upLoss 上行丢包率,单位 (%) 该数值越小越好,目前仅本地用户有该信息 * @property {TUIRole} downLoss 下行丢包率,单位 (%) 该数值越小越好,目前仅本地用户有该信息 * @property {Number} delay 网络延迟,单位 ms,目前仅本地用户有该信息 */ type TUINetwork = { userId: string; quality: TUINetworkQuality; upLoss: number; downLoss: number; delay: number; }; /** * 视频编码参数 * @typedef {object} TUIVideoEncoderParams * @property {number} fps 帧率设置 * @property {number} bitrate 目标编码码率设置 * @property {TUIVideoQuality} quality 上行视频分辨率 * @property {TUIVideoQuality} videoResolution 上行视频分辨率(自 v1.6.0 版本开始支持,v1.6.0 之前版本请使用 quality 参数) * @property {TUIResolutionMode} resolutionMode 横竖屏模式 */ type TUIVideoEncoderParams = { quality?: TUIVideoQuality; videoResolution: TUIVideoQuality; fps: number; bitrate: number; resolutionMode: TUIResolutionMode; }; declare enum TUIRoomType { kConference = 1, kLive = 2 } declare enum TUISeatMode { kFreeToTake = 1, kApplyToTake = 2 } declare enum TUIMediaDevice { kMicrophone = 1, kCamera = 2, kScreen = 3 } declare enum TUICaptureSourceType { kWindow = 0, kScreen = 1 } declare enum TUIChangeReason { kChangedBySelf = 0, kChangedByAdmin = 1 } declare enum TUIKickedOutOfRoomReason { kKickedByAdmin = 0, kKickedByLoggedOnOtherDevice = 1, kKickedByServer = 2 } declare enum TUIRequestAction { kInvalidAction = 0, kRequestToOpenRemoteCamera = 1, kRequestToOpenRemoteMicrophone = 2, kRequestToConnectOtherRoom = 3, kRequestToTakeSeat = 4, kRequestRemoteUserOnSeat = 5, kApplyToAdminToOpenLocalCamera = 6, kApplyToAdminToOpenLocalMicrophone = 7, kApplyToAdminToOpenLocalScreenShare = 8 } declare enum TUIRequestCallbackType { kRequestAccepted = 0, kRequestRejected = 1, kRequestCancelled = 2, kRequestTimeout = 3, kRequestError = 4 } declare enum TRTCRole { kAnchor = 0, kAudience = 1 } declare enum TUIResolutionMode { kResolutionMode_Landscape = 0, kResolutionMode_Portrait = 1 } declare enum TUIRoomDismissedReason { kByOwner = 1, kByServer = 2 } type TUIUserInfo = { userId: string; userName: string; nameCard: string; avatarUrl: string; userRole: TUIRole; hasAudioStream: boolean; hasVideoStream: boolean; hasScreenStream: boolean; isMessageDisabled: boolean; roomCustomInfo: Record<string, any>; }; type TUISeatInfo = { index: number; userId: string; userName: string; nameCard: string; avatarUrl: string; locked: boolean; isVideoLocked: boolean; isAudioLocked: boolean; }; type TUIRequest = { requestAction: TUIRequestAction; timestamp: number; requestId: string; userId: string; userName: string; nameCard: string; avatarUrl: string; content: string; }; type TUIRequestCallback = { requestCallbackType: TUIRequestCallbackType; requestId: string; userId: string; code: number; message: string; }; declare enum TUIMediaDeviceType { kMediaDeviceTypeUnknown = -1, kMediaDeviceTypeAudioInput = 0, kMediaDeviceTypeAudioOutput = 1, kMediaDeviceTypeVideoCamera = 2 } declare enum TUIMediaDeviceState { kMediaDeviceStateAdd = 0, kMediaDeviceStateRemove = 1, kMediaDeviceStateActive = 2 } declare enum TUIAudioRoute { kAudioRouteSpeakerphone = 0, kAudioRouteEarpiece = 1 } type TUIDeviceInfo = { deviceId: string; deviceName: string; deviceProperties?: { supportedResolution?: { width: number; height: number; }[]; }; }; declare enum TUIConferenceStatus { kConferenceStatusNone = 0, kConferenceStatusNotStarted = 1, kConferenceStatusRunning = 2 } declare enum TUIConferenceCancelReason { kConferenceCancelReasonCancelledByAdmin = 0, kConferenceCancelReasonRemovedFromAttendees = 1 } type TUIConferenceInfo = { scheduleStartTime: number; scheduleEndTime: number; scheduleAttendees: string[]; reminderSecondsBeforeStart: number; status: TUIConferenceStatus; basicRoomInfo: TUIRoomInfo; }; type TUIConferenceModifyInfo = { scheduleStartTime?: number; scheduleEndTime?: number; basicRoomInfo: { roomId: string; roomName?: string; }; }; declare enum TUIInvitationStatus { kNone = 0, kPending = 1, kTimeout = 2, kAccepted = 3, kRejected = 4 } declare enum TUIInvitationCode { kSuccess = 0, kAlreadyInInvitationList = 1, kAlreadyInConference = 2 } declare enum TUIInvitationRejectedReason { kRejectToEnter = 0, kInOtherConference = 1 } type TUIInvitation = { status: TUIInvitationStatus; invitee: TUIUserInfo; inviter: TUIUserInfo; }; /** * **TUIRoomEngine 事件列表**<br> * @namespace TUIRoomEvents * @example * import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js'; * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onError, (error) => { * console.log('roomEngine.error', error); * }) */ declare enum TUIRoomEvents { /** * * @description 错误事件 * @event TUIRoomEvents#onError * @param {object} options * @param {number} options.code 错误代码 * @param {string} options.message 错误信息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onError, (error) => { * console.log('TUIRoomError error', error); * }) */ onError = "onError", /** * @description 踢出房间事件 * @default 'onKickedOutOfRoom' * @event TUIRoomEvents#onKickedOutOfRoom * @param {object} options * @param {string} options.roomId 房间号 * @param {TUIKickedOutOfRoomReason} options.reason 用户被踢出房间枚举 * @param {string} options.message 踢出房间信息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onKickedOutOfRoom, ({ roomId, reason, message }) => { * console.log('roomEngine.onKickedOutOfRoom', roomId, reason, message); * }); */ onKickedOutOfRoom = "onKickedOutOfRoom", /** * @description 当前用户被踢下线 * @default 'onKickedOffLine' * @event TUIRoomEvents#onKickedOffLine * @param {string} options.message 用户被踢下线信息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onKickedOffLine, ({ message }) => { * console.log('roomEngine.onKickedOffLine', message); * }); */ onKickedOffLine = "onKickedOffLine", /** * @description userSig 过期事件 * @default 'onUserSigExpired' * @event TUIRoomEvents#onUserSigExpired * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserSigExpired, () => { * console.log('roomEngine.onUserSigExpired'); * }); */ onUserSigExpired = "onUserSigExpired", /** * @description 主持人销毁房间事件 * @default 'onRoomDismissed' * @event TUIRoomEvents#onRoomDismissed * @param {object} options * @param {string} options.roomId 房间号 * @param {TUIRoomDismissedReason} options.reason 房间解散原因枚举,该字段自 v2.3.0 开始支持 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRoomDismissed, ({ roomId,reason }) => { * console.log('roomEngine.onRoomDismissed', roomId,reason); * }); */ onRoomDismissed = "onRoomDismissed", /** * @description 房间名字修改事件 * @default 'onRoomNameChanged' * @event TUIRoomEvents#onRoomChanged * @param {object} options * @param {string} options.roomName 房间名字 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRoomNameChanged, ({ roomId, roomName }) =>{ * console.log('roomEngine.onRoomNameChanged', roomId, roomName); * }); */ onRoomNameChanged = "onRoomNameChanged", /** * @description 上麦模式修改事件 * @default 'onRoomSeatModeChanged' * @event TUIRoomEvents#onRoomSeatModeChanged * @param {object} options * @param {TUISeatMode} options.seatMode 房间上麦模式 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRoomSeatModeChanged, ({ roomId, seatMode }) =>{ * console.log('roomEngine.onRoomSeatModeChanged', roomId, seatMode); * }); */ onRoomSeatModeChanged = "onRoomSeatModeChanged", /** * @description 房间内人数变化事件 * @default 'onRoomUserCountChanged' * @event TUIRoomEvents#onRoomUserCountChanged * @param {object} options * @param {string} options.roomId 房间号 * @param {number} options.userCount 房间内人数 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRoomUserCountChanged, ({ roomId, userCount }) =>{ * console.log('roomEngine.onRoomUserCountChanged', roomId, userCount); * }); */ onRoomUserCountChanged = "onRoomUserCountChanged", /** * @description 所有成员摄像头使用权限改变事件 * @default 'onAllUserCameraDisableChanged' * @event TUIRoomEvents#onAllUserCameraDisableChanged * @param {object} options * @param {boolean} options.isDisable 是否允许使用摄像头 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onAllUserCameraDisableChanged, ({ isDisable }) =>{ * console.log('roomEngine.onAllUserCameraDisableChanged', isDisable); * }); */ onAllUserCameraDisableChanged = "onAllUserCameraDisableChanged", /** * @since v2.2.0 * @description 房间内所有用户屏幕分享被禁用事件 * @default 'onScreenShareForAllUserDisableChanged' * @event TUIRoomEvents#onScreenShareForAllUserDisableChanged * @param {object} options * @param {boolean} options.isDisable 是否开启禁止屏幕分享 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onScreenShareForAllUserDisableChanged, ({ isDisable }) =>{ * console.log('roomEngine.onScreenShareForAllUserDisableChanged', isDisable); * }); */ onScreenShareForAllUserDisableChanged = "onScreenShareForAllUserDisableChanged", /** * @description 所有成员麦克风使用权限改变事件 * @default 'onAllUserMicrophoneDisableChanged' * @event TUIRoomEvents#onAllUserMicrophoneDisableChanged * @param {object} options * @param {boolean} options.isDisable 是否允许使用麦克风 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, ({ isDisable }) =>{ * console.log('roomEngine.onAllUserMicrophoneDisableChanged', isDisable); * }); */ onAllUserMicrophoneDisableChanged = "onAllUserMicrophoneDisableChanged", /** * @description 所有成员发送消息权限改变事件 * @default 'onSendMessageForAllUserDisableChanged' * @event TUIRoomEvents#OnSendMessageForAllUserDisableChanged * @param {object} options * @param {boolean} options.isDisable 是否被允许 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, ({ isDisable }) =>{ * console.log('roomEngine.onSendMessageForAllUserDisableChanged', isDisable); * }); */ onSendMessageForAllUserDisableChanged = "onSendMessageForAllUserDisableChanged", /** * @description 房间最大麦位数修改事件 * @default 'onRoomMaxSeatCountChanged' * @event TUIRoomEvents#onRoomMaxSeatCountChanged * @param {object} options * @param {boolean} options.maxSeatNumber 最大麦位数 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRoomMaxSeatCountChanged, ({ maxSeatNumber }) =>{ * console.log('roomEngine.onRoomMaxSeatCountChanged', maxSeatNumber); * }); */ onRoomMaxSeatCountChanged = "onRoomMaxSeatCountChanged", /** * @description 远端用户进入房间事件 * @default 'onRemoteUserEnterRoom' * @event TUIRoomEvents#onRemoteUserEnterRoom * @param {object} options * @param {string} options.roomId 房间号 * @param {TUIUserInfo} options.userInfo 用户信息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRemoteUserEnterRoom, ({ roomId, userInfo }) => { * console.log('roomEngine.onRemoteUserEnterRoom', roomId, userInfo); * }); */ onRemoteUserEnterRoom = "onRemoteUserEnterRoom", /** * @description 远端用户离开房间事件 * @default 'onRemoteUserLeaveRoom' * @event TUIRoomEvents#onRemoteUserLeaveRoom * @param {object} options * @param {string} options.roomId 房间号 * @param {TUIUserInfo} options.userInfo 用户信息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRemoteUserLeaveRoom, ({ roomId, userInfo }) => { * console.log('roomEngine.onRemoteUserLeaveRoom', roomId, userInfo); * }); */ onRemoteUserLeaveRoom = "onRemoteUserLeaveRoom", /** * @since v2.5.0 * @description 房间内用户信息改变事件 * @default 'onUserInfoChanged' * @event TUIRoomEvents#onUserInfoChanged * @param {object} options * @param {TUIUserInfo} options.userInfo 用户信息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserInfoChanged, ({ userInfo }) => { * console.log('roomEngine.onUserInfoChanged', userInfo); * }); */ onUserInfoChanged = "onUserInfoChanged", /** * @description 用户角色改变事件 * @deprecated 该接口自 v2.5.0 版本废弃,请使用'onUserInfoChanged'. * @default 'onUserRoleChanged' * @event TUIRoomEvents#onUserRoleChanged * @param {object} options * @param {string} options.userId 用户Id * @param {TUIRole} options.userRole 用户变更后的角色 * @param {TUIUserInfo} options.userInfo 用户信息,该字段自 v2.3.0 开始支持 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserRoleChanged, ({ userInfo }) => { * console.log('roomEngine.onUserRoleChanged', userInfo); * }); */ onUserRoleChanged = "onUserRoleChanged", /** * @description 用户视频状态改变事件 * @default 'onUserVideoStateChanged' * @event TUIRoomEvents#onUserVideoStateChanged * @param {object} options * @param {string} options.userId 用户Id * @param {TUIVideoStreamType} options.streamType 用户流类型 * @param {boolean} options.hasVideo 是否有视频流 * @param {TUIChangeReason} options.reason 变更原因 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserVideoStateChanged, ({ userId, streamType, hasVideo, reason }) => { * console.log('roomEngine.onUserVideoStateChanged', userId, streamType, hasVideo, reason); * }); */ onUserVideoStateChanged = "onUserVideoStateChanged", /** * @description 用户音频状态改变事件 * @default 'onUserAudioStateChanged' * @event TUIRoomEvents#onUserAudioStateChanged * @param {object} options * @param {string} options.userId 用户Id * @param {boolean} options.hasVideo 是否有音频流 * @param {TUIChangeReason} options.reason 原因 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserAudioStateChanged, ({ userId, hasAudio, reason }) => { * console.log('roomEngine.onUserAudioStateChanged', userId, hasAudio, reason); * }); */ onUserAudioStateChanged = "onUserAudioStateChanged", /** * @description 用户发送消息状态改变事件 * @default 'onSendMessageForUserDisableChanged' * @event TUIRoomEvents#onSendMessageForUserDisableChanged * @param {object} options * @param {string} options.userId 成员 Id * @param {boolean} options.isDisable 是否被允许 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onSendMessageForUserDisableChanged, ({ userId, isDisable }) =>{ * console.log('roomEngine.onSendMessageForUserDisableChanged', isDisable); * }); */ onSendMessageForUserDisableChanged = "onSendMessageForUserDisableChanged", /** * @description 用户音量改变事件 * @default 'onUserVoiceVolumeChanged' * @event TUIRoomEvents#onUserVoiceVolumeChanged * @param {object} options * @param {Array<TRTCVolumeInfo>} options.userVolumeList 房间内所有用户的音量, 包含 userId 及 volume 信息,volume 区间为 1~100; * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserVoiceVolumeChanged, ({ userVolumeList }) => { * userVolumeList.forEach(userVolume => { * console.log('roomEngine.onUserVoiceVolumeChanged', userVolume.userId, userVolume.volume); * }) * }); */ onUserVoiceVolumeChanged = "onUserVoiceVolumeChanged", /** * @description 用户网络质量改变事件 * @default 'onUserNetworkQualityChanged' * @event TUIRoomEvents#onUserNetworkQualityChanged * @param {object} options * @param {TUINetwork} options.userNetworkList 网络质量信息 * @example * 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); * }) * }); */ onUserNetworkQualityChanged = "onUserNetworkQualityChanged", /** * @description 麦位列表改变事件 * @default 'onSeatListChanged' * @event TUIRoomEvents#onSeatListChanged * @param {object} options * @param {Array<TUISeatInfo>} options.seatList 麦位列表 * @param {Array<TUISeatInfo>} options.seatedList 新增麦位列表 * @param {Array<TUISeatInfo>} options.leftList 离开的麦位列表 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onSeatListChanged, ({ seatList, seatedList, leftList }) => { * console.log('roomEngine.onSeatListChanged',seatList, seatedList, leftList); * }); */ onSeatListChanged = "onSeatListChanged", /** * @description 当前用户被踢下麦事件 * @default 'onKickedOffSeat' * @event TUIRoomEvents#onKickedOffSeat * @param {number} options.seatIndex 麦位编号,该字段自 v2.3.0 开始支持 * @param {TUIUserInfo} options.userInfo 操作踢人的(主持人/管理员)用户信息,该字段自 v2.3.0 开始支持 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onKickedOffSeat, ({ seatIndex, userInfo }) => { * console.log('roomEngine.onKickedOffSeat', seatIndex, userInfo); * }); */ onKickedOffSeat = "onKickedOffSeat", /** * @description 请求接收事件 * @default 'onRequestReceived' * @event TUIRoomEvents#onRequestReceived * @param {object} options * @param {TUIRequest} options.request 请求接收 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRequestReceived, ({ request }) => { * console.log('roomEngine.onRequestReceived', request); * }); */ onRequestReceived = "onRequestReceived", /** * @description 请求取消事件 * @default 'onRequestCancelled' * @event TUIRoomEvents#onRequestCancelled * @param {object} options * @param {string} options.requestId 请求Id * @param {string} options.userId 取消请求的用户Id * @param {TUIRequest} options.request 请求信息,该字段自 v2.3.0 开始支持 * @param {TUIUserInfo} options.userInfo 处理该请求的 管理员/房主 的用户信息,该字段自 v2.3.0 开始支持 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRequestCancelled, ({ request, userInfo }) => { * console.log('roomEngine.onRequestCancelled', request, userInfo); * }); */ onRequestCancelled = "onRequestCancelled", /** * @description 请求被其他 管理员/房主 处理事件 * @default 'onRequestProcessed' * @event TUIRoomEvents#onRequestProcessed * @param {object} options * @param {string} options.requestId 请求Id * @param {string} options.userId 处理该请求的 管理员/房主 的用户ID * @param {TUIRequest} options.request 请求信息,该字段自 v2.3.0 开始支持 * @param {TUIUserInfo} options.userInfo 处理该请求的 管理员/房主 的用户信息,该字段自 v2.3.0 开始支持 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onRequestProcessed, ({ request, userInfo }) => { * console.log('roomEngine.onRequestProcessed', request, userInfo); * }); */ onRequestProcessed = "onRequestProcessed", /** * @description 接收文本消息事件 * @deprecated 该接口自 v2.0.0 版本废弃,请使用 tim 实例监听收消息事件 * @default 'onReceiveTextMessage' * @event TUIRoomEvents#onReceiveTextMessage * @param {object} options * @param {string} options.roomId 房间Id * @param {TUIMessage} options.message 接收的文本消息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onReceiveTextMessage, ({ roomId, message }) => { * console.log('roomEngine.onReceiveTextMessage', roomId, message); * }); */ onReceiveTextMessage = "onReceiveTextMessage", /** * @description 接收自定义消息事件 * @deprecated 该接口自 v2.0.0 版本废弃,请使用 tim 实例监听收消息事件 * @default 'onReceiveCustomMessage' * @event TUIRoomEvents#onReceiveCustomMessage * @param {object} options * @param {string} options.roomId 房间Id * @param {TUIMessage} options.message 接收的自定义消息 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onReceiveCustomMessage, ({ roomId, message }) => { * console.log('roomEngine.onReceiveCustomMessage', roomId, message); * }); */ onReceiveCustomMessage = "onReceiveCustomMessage", /** * @description 设备变更事件 * @default 'onDeviceChange' * @event TUIRoomEvents#onDeviceChange * @param {object} options * @param {string} options.deviceId 设备 Id * @param {TRTCDeviceType} options.type 设备类型 * @param {TRTCDeviceState} options.state 设备变更状态 * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onDeviceChange, ({ deviceId, type, state }) => { * console.log('roomEngine.onDeviceChange', deviceId, type, state); * }); */ onDeviceChange = "onDeviceChange", /** * @description 屏幕分享停止事件,当用户使用浏览器自带的【停止分享】按钮结束屏幕共享时,该用户会收到 'onUserScreenCaptureStopped' 事件用来修改屏幕共享状态。 * @default 'onUserScreenCaptureStopped' * @event TUIRoomEvents#onUserScreenCaptureStopped * @example * const roomEngine = new TUIRoomEngine(); * roomEngine.on(TUIRoomEvents.onUserScreenCaptureStopped, () => { * console.log('roomEngine.onUserScreenCaptureStopped'); * }); */ onUserScreenCaptureStopped = "onUserScreenCaptureStopped" } declare enum TUIRoomDeviceMangerEvents { /** * @description 设备变更事件 * @default 'onDeviceChange' * @event TUIRoomDeviceMangerEvents#onDeviceChange * @param {object} options * @param {string} options.deviceId 设备 Id * @param {TRTCDeviceType} options.type 设备类型 * @param {TRTCDeviceState} options.state 设备变更状态 * @example * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * deviceManager.on(TUIRoomDeviceMangerEvents.onDeviceChange, ({ deviceId, type, state }) => { * console.log('deviceManager.onDeviceChange', deviceId, type, state); * }); */ onDeviceChanged = "onDeviceChanged", /** * @description 麦克风测试音量 * @default 'onTestMicVolume' * @event TUIRoomDeviceMangerEvents#onTestMicVolume * @param {object} options * @param {number} options.volume 麦克风测试音量(0-100) * @example * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * deviceManager.on(TUIRoomDeviceMangerEvents.onTestMicVolume, ({ volume }) => { * console.log('deviceManager.onTestMicVolume', volume); * }); */ onTestMicVolume = "onTestMicVolume", /** * @description 扬声器测试音量,仅 Electron 端支持 * @default 'onTestSpeakerVolume' * @event TUIRoomDeviceMangerEvents#onTestSpeakerVolume * @param {object} options * @param {number} options.volume 扬声器测试音量(0-100) * @example * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * deviceManager.on(TUIRoomDeviceMangerEvents.onTestSpeakerVolume, ({ volume }) => { * console.log('deviceManager.onTestSpeakerVolume', volume); * }); */ onTestSpeakerVolume = "onTestSpeakerVolume" } /** * @since v2.5.0 * **TUIConferenceListManager 事件列表**<br> * @namespace TUIConferenceListManagerEvents */ declare enum TUIConferenceListManagerEvents { /** * @description 会议预定回调 * @default 'onConferenceScheduled' * @event TUIConferenceListManagerEvents#onConferenceScheduled * @param {object} options * @param {string} options.conferenceInfo 会议信息。 * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceListManager = roomEngine.getConferenceListManager(); * conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceScheduled, ({ conferenceInfo }) => { * console.log('conferenceListManager.onConferenceScheduled', conferenceInfo); * }) */ onConferenceScheduled = "onConferenceScheduled", /** * @description 会议即将开始回调 * @default 'onConferenceWillStart' * @event TUIConferenceListManagerEvents#onConferenceWillStart * @param {object} options * @param {string} options.conferenceInfo 会议信息。 * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceListManager = roomEngine.getConferenceListManager(); * conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceWillStart, ({ conferenceInfo }) => { * console.log('conferenceListManager.onConferenceWillStart', conferenceInfo); * }) */ onConferenceWillStart = "onConferenceWillStart", /** * @description 会议取消回调 * * @param {object} options * @param {string} options.roomId 会议Id,即房间 roomId 。 * @param {TUIConferenceCancelReason} options.reason 会议取消原因。 * @param {TUIUserInfo} options.operateUser 取消会议操作者信息。 * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceListManager = roomEngine.getConferenceListManager(); * conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceCancelled, ({ roomId, reason, operateUser }) => { * console.log('conferenceListManager.onConferenceCancelled', roomId, reason, operateUser); * }) */ onConferenceCancelled = "onConferenceCancelled", /** * @description 会议信息变更回调 * * @param {object} options * @param {TUIConferenceModifyInfo} options.conferenceModifyInfo 会议信息。 * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceListManager = roomEngine.getConferenceListManager(); * conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceInfoChanged, ({ conferenceModifyInfo }) => { * console.log('conferenceListManager.onConferenceInfoChanged', conferenceModifyInfo); * }) */ onConferenceInfoChanged = "onConferenceInfoChanged", /** * @description 参会人员变更回调 * * @param {object} options * @param {string} options.roomId 会议Id,即房间roomId。 * @param {Array<TUIUserInfo>} options.leftUsers 离开成员列表。 * @param {Array<TUIUserInfo>} options.joinedUsers 新加入成员列表。 * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceListManager = roomEngine.getConferenceListManager(); * conferenceListManager.on(TUIConferenceListManagerEvents.onScheduleAttendeesChanged, ({ roomId, leftUsers, joinedUsers }) => { * console.log('conferenceListManager.onScheduleAttendeesChanged', roomId, leftUsers, joinedUsers); * }) */ onScheduleAttendeesChanged = "onScheduleAttendeesChanged", /** * @description 会议状态变更回调 * * @param {object} options * @param {string} options.roomId 会议Id,即房间roomId。 * @param {TUIConferenceStatus} options.status 会议状态。 * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceListManager = roomEngine.getConferenceListManager(); * conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceStatusChanged, ({ roomId, status }) => { * console.log('conferenceListManager.onConferenceStatusChanged', roomId, status ); * }) */ onConferenceStatusChanged = "onConferenceStatusChanged" } /** * @since v2.6.0 * **TUIConferenceInvitationManager 事件列表**<br> * @namespace TUIConferenceInvitationManagerEvents */ declare enum TUIConferenceInvitationManagerEvents { /** * @description 收到会中邀请回调 * @default 'onReceiveInvitation' * @event TUIConferenceInvitationManagerEvents#onReceiveInvitation * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * @param {string} options.extensionInfo 自定义扩展信息 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onReceiveInvitation, ({ roomInfo, invitation, extensionInfo }) => { * console.log('conferenceInvitationManager.onReceiveInvitation', roomInfo, invitation, extensionInfo); * }) */ onReceiveInvitation = "onReceiveInvitation", /** * @description 邀请在其他设备处理的回调 * @default 'onInvitationHandledByOtherDevice' * @event TUIConferenceInvitationManagerEvents#onInvitationHandledByOtherDevice * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {boolean} options.accepted 接受状态。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationHandledByOtherDevice, ({ roomInfo, accepted }) => { * console.log('conferenceInvitationManager.onInvitationHandledByOtherDevice', roomInfo, accepted); * }) */ onInvitationHandledByOtherDevice = "onInvitationHandledByOtherDevice", /** * @description 会中邀请取消的回调 * @default 'onInvitationCancelled' * @event TUIConferenceInvitationManagerEvents#onInvitationCancelled * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationCancelled, ({ roomInfo, invitation }) => { * console.log('conferenceInvitationManager.onInvitationCancelled', roomInfo, invitation); * }) */ onInvitationCancelled = "onInvitationCancelled", /** * @description 会中邀请接受的回调 * @default 'onInvitationAccepted' * @event TUIConferenceInvitationManagerEvents#onInvitationAccepted * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationAccepted, ({ roomInfo, invitation }) => { * console.log('conferenceInvitationManager.onInvitationAccepted', roomInfo, invitation); * }) */ onInvitationAccepted = "onInvitationAccepted", /** * @description 会中邀请拒绝的回调 * @default 'onInvitationRejected' * @event TUIConferenceInvitationManagerEvents#onInvitationRejected * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * @param {TUIInvitationRejectedReason} options.reason 拒绝加入会议的原因。 * * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationRejected, ({ roomInfo, invitation, reason }) => { * console.log('conferenceInvitationManager.onInvitationRejected', roomInfo, invitation, reason); * }) */ onInvitationRejected = "onInvitationRejected", /** * @description 会中邀请超时的回调 * @default 'onInvitationTimeout' * @event TUIConferenceInvitationManagerEvents#onInvitationTimeout * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationTimeout, ({ roomInfo, invitation }) => { * console.log('conferenceInvitationManager.onInvitationTimeout', roomInfo, invitation); * }) */ onInvitationTimeout = "onInvitationTimeout", /** * @description 会中邀请被管理员撤回的回调 * @default 'onInvitationRevokedByAdmin' * @event TUIConferenceInvitationManagerEvents#onInvitationRevokedByAdmin * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * @param {TUIUserInfo} options.operateUser 撤回邀请的人的信息 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationRevokedByAdmin, ({ roomInfo, invitation, userRole }) => { * console.log('conferenceInvitationManager.onInvitationRevokedByAdmin', roomInfo, invitation, operateUser); * }) */ onInvitationRevokedByAdmin = "onInvitationRevokedByAdmin", /** * @description 新添加会中邀请的回调 * @default 'onInvitationAdded' * @event TUIConferenceInvitationManagerEvents#onInvitationAdded * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationAdded, ({ roomInfo, invitation }) => { * console.log('conferenceInvitationManager.onInvitationAdded', roomInfo, invitation); * }) */ onInvitationAdded = "onInvitationAdded", /** * @description 会中邀请被移除的回调 * @default 'onInvitationRemoved' * @event TUIConferenceInvitationManagerEvents#onInvitationRemoved * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationRemoved, ({ roomInfo, invitation }) => { * console.log('conferenceInvitationManager.onInvitationRemoved', roomInfo, invitation); * }) */ onInvitationRemoved = "onInvitationRemoved", /** * @description 会中邀请状态变更的回调 * @default 'onInvitationStatusChanged' * @event TUIConferenceInvitationManagerEvents#onInvitationStatusChanged * @param {object} options * @param {TUIRoomInfo} options.roomInfo 会议信息。 * @param {TUIInvitation} options.invitation 邀请信息。 * * * @example * const roomEngine = new TUIRoomEngine(); * const conferenceInvitationManager = roomEngine.getConferenceInvitationManager(); * conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationStatusChanged, ({ roomInfo, invitation }) => { * console.log('conferenceInvitationManager.onInvitationStatusChanged', roomInfo, invitation); * }) */ onInvitationStatusChanged = "onInvitationStatusChanged" } declare class Logger { private logger; private trtcCloud; private seq; constructor(trtcCloud: any, options?: { userId: string; sdkAppId: number; seq: number; }); getLogMessage(params: any[]): string | any[]; update(options: { sdkAppId: number; userId: string; }): void; debug(...params: any[]): void; info(...params: any[]): void; warn(...params: any[]): void; error(...params: any[]): void; private getTime; } /** * 设备管理 * @class DeviceManager */ declare class TUIRoomDeviceManager { private deviceManagerWASM; private logger; private static deviceManager; private trtcCloud; constructor(options: { Module: any; logger: Logger; trtcCloud: TRTCCloud; }); setDeviceManagerWASM(deviceManagerWASM: any): void; /** * @private * 调用 TUIRoomEngineWASM 的异步方法 * @param funcName * @param args */ private JSCallNativeFunctionPromise; /** * 获取设备列表 * @param {TRTCDeviceType} type 设备类型 * @example * // 获取设备管理 Manager * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * * // 获取摄像头设备列表 * const cameraList = await deviceManager.getDeviceList({ type: TUIMediaDeviceType.kMediaDeviceVideoCamera }); * // 获取麦克风设备列表 * const micList = await deviceManager.getDeviceList({ type: TUIMediaDeviceType.kMediaDeviceTypeAudioInput }); * // 获取扬声器设备列表 * const speakerList = await deviceManager.getDeviceList({ type: TUIMediaDeviceType.kMediaDeviceTypeAudioOutput }); * @returns {Promise} Array<TUIDeviceInfo> */ getDevicesList(options: { type: TUIMediaDeviceType; }): Promise<TUIDeviceInfo[]>; /** * 设置当前使用设备 * @param {TRTCDeviceType} type 设备类型 * @param {string} deviceId 设备 Id * @example * // 获取设备管理 Manager * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * * // 设置当前麦克风设备 * deviceManager.setCurrentDevice({ * type: TUIMediaDeviceType.kMediaDeviceTypeAudioInput, * deviceId: 'default', * }); * // 设置当前扬声器设备 * deviceManager.setCurrentDevice({ * type: TUIMediaDeviceType.kMediaDeviceTypeAudioOutput, * deviceId: 'default', * }); * // 设置当前摄像头设备 * deviceManager.setCurrentDevice({ * type: TUIMediaDeviceType.kMediaDeviceVideoCamera, * deviceId: '', * }); * @returns {void} */ setCurrentDevice(options: { type: TUIMediaDeviceType; deviceId: string; }): Promise<void>; /** * 获取当前使用的设备信息 * @param {object} options 获取当前设备信息的参数 * @param {TUIMediaDeviceType} options.type 设备类型 * @example * // 获取设备管理 Manager * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * @returns {TUIDeviceInfo} */ getCurrentDevice(options: { type: TUIMediaDeviceType; }): TUIDeviceInfo; /** * 开始进行摄像头测试 * @param {object} options 摄像头测试参数 * @param {string} options.view 显示摄像头测试的视频区域, 传入的 view 为承载预览画面 div 元素的 id * @returns {Promise<void>} * * @example * const roomEngine = new TUIRoomEngine(); * await roomEngine.startCameraDeviceTest({ view: 'test-preview' }); */ startCameraDeviceTest(options: { view: string; }): Promise<void>; /** * 停止摄像头测试 * @returns {Promise<void>} * @example * const roomEngine = new TUIRoomEngine(); * await roomEngine.stopCameraDeviceTest(); */ stopCameraDeviceTest(): Promise<void>; /** * 开始进行麦克风测试 * @param options * @param {number} options.interval 麦克风音量的回调时间 */ startMicDeviceTest(options: { interval: number; }): Promise<void>; /** * 停止进行麦克风测试 */ stopMicDeviceTest(): Promise<void>; startSpeakerDeviceTest(options: { filePath: string; }): Promise<void>; stopSpeakerDeviceTest(): Promise<void>; isFrontCamera(): boolean; /** * 切换前后置摄像头,该接口只适用于移动端浏览器 * @param {Object} options * @param {boolean} options.isFrontCamera 是否切换为前置摄像头 * * const deviceManager = roomEngine.instance?.getDeviceManager(); * // 移动端切换为前置摄像头 * await deviceManager?.switchCamera({ isFrontCamera: true }); * // 移动端切换为后置摄像头 * await deviceManager?.switchCamera({ isFrontCamera: false }); */ switchCamera(options: { isFrontCamera: boolean; }): Promise<void>; isAutoFocusEnabled(): boolean; enableCameraTorch(options: { enabled: boolean; }): void; setAudioRoute(options: { route: TUIAudioRoute; }): void; /** * 监听 roomEngine 的事件 * @param event TUIRoomEvents * @param func function * @returns {void} * * @example * const roomEngine = new TUIRoomEngine(); * const deviceManager = roomEngine.getDeviceManager(); * deviceManager.on(event, func); */ on(event: TUIRoomDeviceMangerEvents, func: (...args: any[]) => void): void; private handleTrtcCloudBindEvent; off(event: string, func: (...args: any[]) => void): void; } /** * 会议列表 * @class conferenceListManager */ declare class TUIConferenceListManager { private static readonly ROOM_NAME; private static readonly SCHEDULED_START_TIME; private static readonly SCHEDULED_END_TIME; private conferenceListManagerWASM; private logger; private static conferenceListManager; constructor(options: { Module: any; logger: Logger; roomEngineWASM: any; }); /** * @private * 调用 TUIRoomEngineWASM 的异步方法 * @param funcName * @param args */ private JSCallNativeFunctionPromise; /** * 预定会议 * @param {object} options * @param {string} options.roomId 房间 Id,必填, roomId 限制长度为64字节,且仅支持以下范围的字符集:<br> * - 大小写英文字母(a-zA-Z) * - 数字(0-9) * - 空格 ! # $ % & ( ) + - : ; < = . > ? @ [ ] ^ _ { } | ~ , * @param {number} [options.scheduleStartTime] 预定会议开始时间(计数单位为秒的时间戳) * @param {number} [options.scheduleEndTime] 预定会议结束时间(计数单位为秒的时间戳) * @param {array=} [options.scheduleAttendees=[]] 预定会议邀请成员 userId 列表 * @param {number=} [options.reminderSecondsBeforeStart=0] 会议开始前提醒时间,单位秒 * @param {string=} [options.roomName=roomId] 房间名称,默认值为 roomId,传入的值不能为空字符串 * @param {TUIRoomType=} [options.roomType=TUIRoomType.kConference] 房间类型, 默认值为 TUIRoomType.kConference <br> * 办公协同、医疗问诊、远程会议、教育场景,roomType 设置为 TUIRoomType.kConference * 电商直播、语聊房场景,roomType 设置为 TUIRoomType.kLive * @param {boolean=} [options.isSeatEnabled=false] 是否开启麦位控制,默认值为 false * @param {TUISeatMode=} [options.seatMode=TUISeatMode.kFreeToTake] 上麦模式(开启麦位控制后生效),默认值为 TUISeatMode.kFreeToTake <br> * 自由上麦模式,台下观众可以自由上麦,无需申请,seatMode 设置为 TUISeatMode.kFreeToTake * 申请上麦模式,台下观众上麦需要房主或者管理员同意后才能上麦,seatMode 设置为 TUISeatMode.kApplyToTake * @param {boolean=} [options.isMicrophoneDisableForAllUser=false] 是否开启全员禁麦,默认不开启全员禁麦(创建房间可选参数) * @param {boolean=} [options.isScreenShareDisableForAllUser=false] 是否开启禁止屏幕分享,默认不开启禁止屏幕分享权限(该属性自 v2.2.0 版本 以后支持,创建房间可选参数) * @param {boolean=} [options.isCameraDisableForAllUser=false] 是否开启全员禁画,默认不开启全员禁画(创建房间可选参数) * @param {boolean=} [options.isMessageDisableForAllUser=false] 是否允许成员发送消息,默认不禁止(创建房间可选参数) * @param {number=} options.maxSeatCount 最大麦位数量 (创建房间可选参数) * @param {stri