@tencentcloud/tuiroom-engine-uniapp-app
Version:
TUIRoomEngine UniApp(App) SDK
1,314 lines (1,311 loc) • 146 kB
TypeScript
import { ChatSDK } from '@tencentcloud/chat';
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,
kRequestId = 5
}
declare enum TRTCRole {
kAnchor = 0,
kAudience = 1
}
declare enum TUIResolutionMode {
kResolutionMode_Landscape = 0,
kResolutionMode_Portrait = 1
}
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-wx';
* 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 房间号
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onRoomDismissed, ({ roomId }) => {
* console.log('roomEngine.onRoomDismissed', roomId);
* });
*/
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 '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",
/**
* @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",
/**
* @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 '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 '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 用户变更后的角色
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onUserRoleChanged, ({ userId, userRole }) => {
* console.log('roomEngine.onUserRoleChanged', userId, userRole);
* });
*/
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
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onKickedOffSeat, ({ userId }) => {
* console.log('roomEngine.onKickedOffSeat', userId);
* });
*/
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
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onRequestCancelled, ({ requestId, userId }) => {
* console.log('roomEngine.onRequestCancelled', requestId, userId);
* });
*/
onRequestCancelled = "onRequestCancelled",
/**
* @description 请求被其他 管理员/房主 处理事件
* @default 'onRequestProcessed'
* @event TUIRoomEvents#onRequestProcessed
* @param {object} options
* @param {string} options.requestId 请求Id
* @param {string} options.userId 处理该请求的 管理员/房主 的用户ID
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onRequestProcessed, ({ requestId, userId }) => {
* console.log('roomEngine.onRequestProcessed', requestId, userId);
* });
*/
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",
/**
* @description 屏幕分享暂停事件,当用户使用系统自带的【停止分享】按钮暂停屏幕共享时,该用户会收到 'onUserScreenCapturePaused' 事件用来修改屏幕共享状态。
* @default 'onUserScreenCapturePaused'
* @event TUIRoomEvents#onUserScreenCapturePaused
* @param {object} options
* @param {Number} options.reason 原因
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onUserScreenCapturePaused, ({ reason }) => {
* console.log('roomEngine.onUserScreenCapturePaused', reason);
* });
*/
onUserScreenCapturePaused = "onUserScreenCapturePaused",
/**
* @description 屏幕分享恢复事件
* @default 'onUserScreenCaptureResumed'
* @event TUIRoomEvents#onUserScreenCaptureResumed
* @param {object} options
* @param {Number} options.reason 原因
* @example
* const roomEngine = new TUIRoomEngine();
* roomEngine.on(TUIRoomEvents.onUserScreenCaptureResumed, ({ reason }) => {
* console.log('roomEngine.onUserScreenCaptureResumed', reason);
* });
*/
onUserScreenCaptureResumed = "onUserScreenCaptureResumed"
}
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"
}
/**
* @since v2.8.6
* **TXAudioEffectManager 事件列表**<br>
* @namespace TXAudioEffectManagerEvents
*/
declare enum TXAudioEffectManagerEvents {
/**
* @description 背景音乐播放开始回调
* @default 'onStart'
* @event TXAudioEffectManagerEvents#onStart
* @param {object} options
* @param {number} options.id 音乐 id。
* @param {number} options.errCode 错误码 0: 开始播放成功。
*
* @example
* const roomEngine = new TUIRoomEngine();
* const audioEffectManager = roomEngine.getAudioEffectManager();
* audioEffectManager.on(TXAudioEffectManagerEvents.onStart, (options) => {
* console.log('audioEffectManager.onStart', options);
* })
*/
onStart = "onStart",
/**
* @description 背景音乐播放中回调
* @default 'onPlayProgress'
* @event TXAudioEffectManagerEvents#onPlayProgress
* @param {object} options
* @param {number} options.id 音乐 id。
* @param {number} options.curPtsMS 当前音乐播放位置。
* @param {number} options.durationMS 音乐总时长。
*
*
* @example
* const roomEngine = new TUIRoomEngine();
* const audioEffectManager = roomEngine.getAudioEffectManager();
* audioEffectManager.on(TXAudioEffectManagerEvents.onPlayProgress, (options) => {
* console.log('audioEffectManager.onPlayProgress', options);
* })
*/
onPlayProgress = "onPlayProgress",
/**
* @description 背景音乐播放完成回调
* @default 'onComplete'
* @event TXAudioEffectManagerEvents#onComplete
* @param {object} options
* @param {number} options.id 音乐 id。
* @param {number} options.errCode 错误码。0: 播放结束。
*
* @example
* const roomEngine = new TUIRoomEngine();
* const audioEffectManager = roomEngine.getAudioEffectManager();
* audioEffectManager.on(TXAudioEffectManagerEvents.onComplete, (options) => {
* console.log('audioEffectManager.onComplete', options);
* })
*/
onComplete = "onComplete"
}
/**
* 设备管理
* @class DeviceManager
*/
declare class TUIRoomDeviceManager {
private static instance;
private deviceManager;
private logger;
private constructor();
static getInstance(options: {
Module: any;
logger: any;
}): TUIRoomDeviceManager;
private JSCallNativeFunctionSync;
/**
* 切换前后置摄像头,该接口只适用于移动端浏览器
* @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>;
}
declare enum TRTCVideoResolution {
TRTCVideoResolution_120_120 = 1,
TRTCVideoResolution_160_160 = 3,
TRTCVideoResolution_270_270 = 5,
TRTCVideoResolution_480_480 = 7,
TRTCVideoResolution_160_120 = 50,
TRTCVideoResolution_240_180 = 52,
TRTCVideoResolution_280_210 = 54,
TRTCVideoResolution_320_240 = 56,
TRTCVideoResolution_400_300 = 58,
TRTCVideoResolution_480_360 = 60,
TRTCVideoResolution_640_480 = 62,
TRTCVideoResolution_960_720 = 64,
TRTCVideoResolution_160_90 = 100,
TRTCVideoResolution_256_144 = 102,
TRTCVideoResolution_320_180 = 104,
TRTCVideoResolution_480_270 = 106,
TRTCVideoResolution_640_360 = 108,
TRTCVideoResolution_960_540 = 110,
TRTCVideoResolution_1280_720 = 112,
TRTCVideoResolution_1920_1080 = 114
}
declare enum TRTCVideoStreamType {
TRTCVideoStreamTypeBig = 0,
TRTCVideoStreamTypeSmall = 1,
TRTCVideoStreamTypeSub = 2
}
declare enum TRTCVideoFillMode {
TRTCVideoFillMode_Fill = 0,
TRTCVideoFillMode_Fit = 1
}
declare enum TRTCVideoMirrorType {
TRTCVideoMirrorType_Auto = 0,
TRTCVideoMirrorType_Enable = 1,
TRTCVideoMirrorType_Disable = 2
}
declare enum TRTCBeautyStyle {
TRTCBeautyStyleSmooth = 0,
TRTCBeautyStyleNature = 1
}
declare enum TRTCAppScene {
TRTCAppSceneVideoCall = 0,
TRTCAppSceneLIVE = 1,
TRTCAppSceneAudioCall = 2,
TRTCAppSceneVoiceChatRoom = 3
}
declare enum TRTCRoleType {
TRTCRoleAnchor = 20,
TRTCRoleAudience = 21
}
declare enum TRTCAudioQuality {
TRTCAudioQualityDefault = 0,
TRTCAudioQualitySpeech = 1,
TRTCAudioQualityMusic = 3
}
/**
* 设备信息<br>
* @param {String} deviceId - 设备PID,字符编码格式是UTF-8
* @param {String} deviceName - 设备名称,字符编码格式是UTF-8
* @param {String} kind - 设备类型,['videoinput' | 'audioinput']
* @param {String} deviceName - 设备名称,字符编码格式是UTF-8
*/
declare class TRTCDeviceInfo {
deviceId: string;
deviceName: string;
kind?: string;
label?: string;
groupId?: string;
constructor(deviceId?: string, deviceName?: string, kind?: string, label?: string, groupId?: string);
}
declare enum TRTCDeviceState {
TRTCDeviceStateAdd = 0,
TRTCDeviceStateRemove = 1,
TRTCDeviceStateActive = 2
}
declare enum TRTCDeviceType {
TRTCDeviceTypeUnknow = -1,
TRTCDeviceTypeMic = 0,
TRTCDeviceTypeSpeaker = 1,
TRTCDeviceTypeCamera = 2
}
/**
* 进房相关参数<br>
* 只有该参数填写正确,才能顺利调用 enterRoom 进入 roomId 所指定的音视频房间。
* @param {Number} sdkAppId - 【字段含义】应用标识(必填),腾讯视频云基于 sdkAppId 完成计费统计。<br>
* 【推荐取值】在腾讯云 [TRTC 控制台](https://console.cloud.tencent.com/rav/) 中创建应用,之后可以在账号信息页面中得到该 ID。<br>
* @param {String} userId - 【字段含义】用户标识(必填)。当前用户的 userId,相当于用户名,UTF-8编码。<br>
* 【推荐取值】如果一个用户在您的账号系统中的 ID 为“abc”,则 userId 即可设置为“abc”。<br>
* @param {String} userSig - 【字段含义】用户签名(必填),当前 userId 对应的验证签名,相当于登录密码。<br>
* 【推荐取值】请参考 [如何计算UserSig](https://cloud.tencent.com/document/product/647/17275)。<br>
* @param {Number} roomId - 【字段含义】房间号码(必填),指定房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话, roomId 和 strRoomId 必须填一个, 若您选用 strRoomId,则 roomId 需要填写为0。<br>
* 【推荐取值】您可以随意指定,但请不要重复,如果您的用户账号 ID 是数字类型的,可以直接用创建者的用户 ID 作为 roomId。<br>
* @param {String} strRoomId - 【字段含义】字符串房间号码(选填),roomId 和 strRoomId 必须填一个。若两者都填,则优先选择 roomId。<br>
* 【推荐取值】您可以随意指定,但请不要重复。<br>
* @param {TRTCRoleType} role - 【字段含义】直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom),视频通话场景下指定无效。<br>
* 【推荐取值】默认值:主播(TRTCRoleAnchor)<br>
* @param {String} privateMapKey - 【字段含义】房间签名(非必填),如果您希望某个房间只能让特定的某些 userId 进入,就需要使用 privateMapKey 进行权限保护。<br>
* 【推荐取值】仅建议有高级别安全需求的客户使用,参考文档:[进房权限保护](https://cloud.tencent.com/document/product/647/32240)<br>
* @param {String} businessInfo - 【字段含义】业务数据(非必填),某些非常用的高级特性才需要用到此字段。<br>
* 【推荐取值】不建议使用<br>
* @param {String} streamId - 【字段含义】绑定腾讯云直播 CDN 流 ID[非必填],设置之后,您就可以在腾讯云直播 CDN 上通过标准直播方案(FLV或HLS)播放该用户的音视频流。<br>
* 【推荐取值】限制长度为64字节,可以不填写,一种推荐的方案是使用 “sdkappid_roomid_userid_main” 作为 streamid,这样比较好辨认且不会在您的多个应用中发生冲突。<br>
* 【特殊说明】要使用腾讯云直播 CDN,您需要先在[控制台](https://console.cloud.tencent.com/trtc/) 中的功能配置页开启“启动自动旁路直播”开关。<br>
* 【参考文档】[CDN 旁路直播](https://cloud.tencent.com/document/product/647/16826)。
* @param {String} userDefineRecordId - 【字段含义】设置云端录制完成后的回调消息中的 "userdefinerecordid" 字段内容,便于您更方便的识别录制回调。<br>
* 【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。<br>
* 【参考文档】[云端录制](https://cloud.tencent.com/document/product/647/16823)。
*/
declare class TRTCParams {
sdkAppId: number;
userId: string;
userSig: string;
roomId: number;
strRoomId: string;
role: number;
privateMapKey: null | string;
streamId: null | string;
userDefineRecordId: null | string;
frameWorkType: number;
constructor(sdkAppId?: number, userId?: string, userSig?: string, roomId?: number, strRoomId?: string, role?: TRTCRoleType, privateMapKey?: null | string, businessInfo?: null | string, streamId?: null | string, userDefineRecordId?: null | string, frameWorkType?: number);
}
/**
* 视频编码参数<br>
* 该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)。
* @param {TRTCVideoResolution} videoResolution - 【字段含义】 视频分辨率<br>
* 【推荐取值】 <br>
* - 视频通话建议选择360 × 640及以下分辨率,resMode 选择 Portrait。<br>
* - 手机直播建议选择 540 × 960,resMode 选择 Portrait。<br>
*