@tencentcloud/tuiroom-engine-js
Version:
TUIRoomEngine Web SDK
1,331 lines (1,330 loc) • 188 kB
TypeScript
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, TRTCMediaMixingEncParam, TRTCMediaMixingEvent, TRTCMediaSource, TRTCMediaSourceType, 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_ROOM_MISMATCH = -4,
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_ALREADY_ROOM_OWNER = -1200,
ERR_IM_ATTRIBUTE_WRITE_CONFLICT = -1201,
ERR_ALREADY_ROOM_ENTER = -1202,
ERR_DESTROY_ROOM_NO_PERMISSION = -1203,
ERR_LIVE_REQUEST_SERVER_TIMEOUT = -1300,
ERR_LIVE_SERVER_PROCESS_FAILED = -1301,
ERR_LIVE_DISCONNECTED = -1302,
ERR_LIVE_NO_AVAILABLE_HEVC_DECODERS = -1303,
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_NAME_INVALID = -2107,
ERR_ALREADY_IN_OTHER_ROOM = -2108,
ERR_USER_NOT_EXIST = -2200,
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_MAX_SEAT_COUNT_LIMIT = -2340,
ERR_SEAT_INDEX_NOT_EXIST = -2344,
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,
ERR_ROOM_NOT_SUPPORT_PRELOADING = -4001,
ERR_CALL_IN_PROGRESS = -6001,
ERR_SERVER_SYSTEM_ERROR = 100001,
ERR_SERVER_INVALID_PARAMETER = 100002,
ERR_ROOM_ID_OCCUPIED = 100003,
ERR_ROOM_ID_NOT_EXIST = 100004,
ERR_USER_NOT_ENTERED = 100005,
ERR_NO_PERMISSION = 100006,
ERR_NEED_PASSWORD = 100018,
ERR_WRONG_PASSWORD = 100019,
ERR_ROOM_USER_FULL = 100008,
ERR_REQUEST_CONFLICT = 100102,
ERR_SEAT_OCCUPIED = 100210,
ERR_ALREADY_IN_SEAT = 100203,
ERR_SEAT_LOCKED = 100200,
ERR_ALL_SEAT_OCCUPIED = 100205,
ERR_USER_NOT_IN_SEAT = 100206,
ERR_SEAT_NOT_SUPPORT_LINK_MIC = 100211,
ERR_ROOM_ALREADY_CONNECTED = 100401,
ERR_ROOM_CONNECTED_IN_OTHER = 100403,
ERR_MAX_CONNECTED_COUNT_LIMIT = 100404,
ERR_BATTLE_IN_RUNNING = 100419,
ERR_BATTLE_ID_NOT_EXIST = 100411,
ERR_ROOM_BATTLEID_IN_OTHER = 100415,
ERR_ROOM_METADATA_EXCEED_KEY_COUNT_LIMIT = 100500,
ERR_ROOM_METADATA_EXCEED_VALUE_SIZE_LIMIT = 100501,
ERR_GIFT_ABILITY_NOT_ENABLED = 102001,
ERR_GIFT_NOT_EXIST = 102002,
ERR_GIFT_SERVER_PRE_VERIFICATION_FAILED = 102004,
ERR_MIX_STREAM_UPDATE_TOO_FREQ = 100427,
ERR_PUBLISH_STREAM_INFO_NOT_EXISTED = 100430,
ERR_PUBLISH_STREAM_NO_NEED_RECOVERY = 100431
}
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
}
/**
* 视频渲染模式
* @enum {String}
*/
declare enum TUIRenderMode {
/**
* 被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。
* 和 native 对齐,该模式对应着 web object-fit 属性的 cover 模式。
* */
kRenderModeFill = "fill",
/**
* 被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。
* 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加黑边。
* */
kRenderModeFit = "fit"
}
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,
kNetworkDisconnected = 3,
kJoinRoomStatusInvalidDuringOffline = 4,
kCountOfJoinedRoomsExceedLimit = 5
}
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>;
};
declare enum TUIUserInfoModifyFlag {
kNone = 0,
kUserRole = 1,
kNameCard = 2
}
type TUISeatInfo = {
index: number;
userId: string;
userName: string;
nameCard: string;
avatarUrl: string;
isLocked: boolean;
isVideoLocked: boolean;
isAudioLocked: boolean;
};
declare enum TUIMoveSeatPolicy {
kAbortWhenOccupied = 0,
kForceReplace = 1,
kSwapPosition = 2
}
type TUIRequest = {
requestAction: TUIRequestAction;
timestamp: number;
requestId: string;
userId: string;
userName: string;
nameCard: string;
avatarUrl: string;
content: string;
fromUser: TUIUserInfo;
toUser: TUIUserInfo;
};
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;
};
};
/**
* 自动播放失败时回调参数结构体
*
* userId 用户ID
* resume 恢复播放的回调函数
*/
type TUIAutoPlayCallbackInfo = {
userId: string;
resume: () => void;
};
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 用户信息
* @param {TUIUserInfoModifyFlag} options.modifyFlag 用户信息变更标记位,该字段自 v3.5.1 开始支持
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onUserInfoChanged, ({ userInfo, modifyFlag }) => {
* console.log('roomEngine.onUserInfoChanged', userInfo, modifyFlag);
* });
*/
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",
/**
* @since v3.1.0
* @description 接收文本消息事件
* @default 'onReceiveTextMessage'
* @event TUIRoomEvents#onReceiveTextMessage
* @param {object} options 接收的文本消息
* @param {string} options.roomId 房间Id
* @param {string} options.textContent 文本消息内容
* @param {TUIUserInfo} options.sender 发送者信息
* @param {number} options.sequence 消息序号
* @param {object} options.extensionInfo 扩展信息
* @param {string} options.timestampInSecond 时间戳
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onReceiveTextMessage, (message) => {
* console.log('roomEngine.onReceiveTextMessage', message);
* });
*/
onReceiveTextMessage = "onReceiveTextMessage",
/**
* @since v3.1.0
* @description 接收自定义消息事件
* @default 'onReceiveCustomMessage'
* @event TUIRoomEvents#onReceiveCustomMessage
* @param {object} options 接收的自定义消息
* @param {string} options.roomId 房间Id
* @param {string} options.businessId 业务Id
* @param {string} options.data 自定义消息内容
* @param {TUIUserInfo} options.sender 发送者信息
* @param {number} options.sequence 消息序号
* @param {string} options.timestampInSecond 时间戳
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onReceiveCustomMessage, (message) => {
* console.log('roomEngine.onReceiveCustomMessage', 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",
/**
* @description 自动播放失败的事件,监听到该事件后可以引导用户与页面进行交互
* @default 'onAutoPlayFailed'
* @event TUIRoomEvents#onAutoPlayFailed
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onAutoPlayFailed, ({userId, resume}) => {
* // 自动播放失败,引导用户与页面进行交互
* });
*/
onAutoPlayFailed = "onAutoPlayFailed",
/**
* @description 房间自定义信息改变的事件
* @default 'onRoomMetadataChanged'
* @event TUIRoomEvents#onRoomMetadataChanged
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onRoomMetadataChanged, ({key, value}) => {
* console.log(key, value);
* });
*/
onRoomMetadataChanged = "onRoomMetadataChanged"
}
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 会议取消回调
* @deprecated 该接口自 v3.5.0 版本废弃,请使用 onConferenceDidCancelled'.
*
* @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 会议取消回调 代替 onConferenceCancelled
*
* @param {object} options
* @param {TUIConferenceInfo} options.conferenceInfo 会议信息。
* @param {TUIConferenceCancelReason} options.reason 会议取消原因。
* @param {TUIUserInfo} options.operateUser 取消会议操作者信息。
*
* @example
* const roomEngine = new TUIRoomEngine();
* const conferenceListManager = roomEngine.getConferenceListManager();
* conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceDidCancelled, ({ conferenceInfo, reason, operateUser }) => {
* console.log('conferenceListManager.onConferenceDidCancelled', conferenceInfo, reason, operateUser);
* })
*/
onConferenceDidCancelled = "onConferenceDidCancelled",
/**
* @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 参会人员变更回调
* @deprecated 该接口自 v3.5.0 版本废弃,请使用 onScheduleAttendeesUpdated'.
*
* @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 参会人员变更回调 代替 onScheduleAttendeesChanged
*
* @param {object} options
* @param {TUIConferenceInfo} options.conferenceInfo 会议信息。
* @param {Array<TUIUserInfo>} options.leftUsers 离开成员列表。
* @param {Array<TUIUserInfo>} options.joinedUsers 新加入成员列表。
*
* @example
* const roomEngine = new TUIRoomEngine();
* const conferenceListManager = roomEngine.getConferenceListManager();
* conferenceListManager.on(TUIConferenceListManagerEvents.onScheduleAttendeesUpdated, ({ conferenceInfo, leftUsers, joinedUsers }) => {
* console.log('conferenceListManager.onScheduleAttendeesUpdated', conferenceInfo, leftUsers, joinedUsers);
* })
*/
onScheduleAttendeesUpdated = "onScheduleAttendeesUpdated",
/**
* @description 会议状态变更回调
* @deprecated 该接口自 v3.5.0 版本废弃,请使用 onConferenceStatusUpdated'.
*
* @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",
/**
* @description 会议状态变更回调
*
* @param {object} options
* @param {TUIConferenceInfo} options.conferenceInfo 会议Id,即房间roomId。
* @param {TUIConferenceStatus} options.status 会议状态。
*
* @example
* const roomEngine = new TUIRoomEngine();
* const conferenceListManager = roomEngine.getConferenceListManager();
* conferenceListManager.on(TUIConferenceListManagerEvents.onConferenceStatusUpdated, ({ conferenceInfo, status }) => {
* console.log('conferenceListManager.onConferenceStatusUpdated', conferenceInfo, status );
* })
*/
onConferenceStatusUpdated = "onConferenceStatusUpdated"
}
/**
* @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 {string} options.roomId 会议信息。
* @param {TUIInvitation} options.invitation 邀请信息。
*
*
* @example
* const roomEngine = new TUIRoomEngine();
* const conferenceInvitationManager = roomEngine.getConferenceInvitationManager();
* conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationAdded, ({ roomId, invitation }) => {
* console.log('conferenceInvitationManager.onInvitationAdded', roomId, invitation);
* })
*/
onInvitationAdded = "onInvitationAdded",
/**
* @description 会中邀请被移除的回调
* @default 'onInvitationRemoved'
* @event TUIConferenceInvitationManagerEvents#onInvitationRemoved
* @param {object} options
* @param {string} options.roomId 会议信息。
* @param {TUIInvitation} options.invitation 邀请信息。
*
*
* @example
* const roomEngine = new TUIRoomEngine();
* const conferenceInvitationManager = roomEngine.getConferenceInvitationManager();
* conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationRemoved, ({ roomId, invitation }) => {
* console.log('conferenceInvitationManager.onInvitationRemoved', roomId, invitation);
* })
*/
onInvitationRemoved = "onInvitationRemoved",
/**
* @description 会中邀请状态变更的回调
* @default 'onInvitationStatusChanged'
* @event TUIConferenceInvitationManagerEvents#onInvitationStatusChanged
* @param {object} options
* @param {string} options.roomId 会议信息。
* @param {TUIInvitation} options.invitation 邀请信息。
*
*
* @example
* const roomEngine = new TUIRoomEngine();
* const conferenceInvitationManager = roomEngine.getConferenceInvitationManager();
* conferenceInvitationManager.on(TUIConferenceInvitationManagerEvents.onInvitationStatusChanged, ({ roomId, invitation }) => {
* console.log('conferenceInvitationManager.onInvitationStatusChanged', roomId, invitation);
* })
*/
onInvitationStatusChanged = "onInvitationStatusChanged"
}
type TUILiveInfo = {
roomId: string;
roomType: TUIRoomType;
name: string;
notice: string;
isMessageDisableForAllUser: boolean;
isGiftEnabled: boolean;
isLikeEnabled: boolean;
isPublicVisible: boolean;
isSeatEnabled: boolean;
keepOwnerOnSeat: boolean;
seatLayoutTemplateId: number;
maxSeatCount: number;
seatMode: TUISeatMode;
coverUrl: string;
backgroundUrl: string;
categoryList: Array<number>;
activityStatus: number;
readonly roomOwner?: string;
readonly ownerName?: string;
readonly ownerAvatarUrl?: string;
readonly createTime?: number;
readonly totalViewers?: number;
readonly isUnlimitedRoomEnabled?: boolean;
readonly cdnStreamUrl?: string;
readonly lebSecretKey?: string;
readonly lebEncrypted?: string;
readonly lebSignature?: string;
};
type StartLiveOptions = {
roomId: string;
roomType?: TUIRoomType;
name: string;
notice?: string;
isMessageDisableForAllUser?: boolean;
isGiftEnabled?: boolean;
isLikeEnabled?: boolean;
isPublicVisible?: boolean;
isSeatEnabled?: boolean;
keepOwnerOnSeat?: boolean;
seatLayoutTemplateId?: number;
maxSeatCount?: number;
seatMode?: TUISeatMode;
coverUrl?: string;
backgroundUrl?: string;
categoryList?: Array<number>;
activityStatus?: number;
};
/**
* 直播连线用户信息
*/
type TUILiveConnectionUser = {
roomId: string;
userId: string;
userName: string;
avatarUrl: string;
joinConnectionTime: number;
};
/**
* 发起连线请求的结果状态码
*/
declare enum TUIConnectionCode {
TUIConnectionCodeUnknown = -1,
TUIConnectionCodeSuccess = 0,
TUIConnectionCodeRoomNotExist = 1,
TUIConnectionCodeConnecting = 2,
TUIConnectionCodeConnectingOtherRoom = 3,
TUIConnectionCodeFull = 4,
TUIConnectionCodeRetr