@tencentcloud/tuiroom-engine-js 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,12 +1,930 @@
1
- import TIM from '@tencentcloud/chat';
2
- import TencentCloudChat from '@tencentcloud/chat';
3
- import TRTCCloud, { TRTCDeviceInfo, TRTCScreenCaptureSourceInfo } from 'trtc-cloud-js-sdk';
4
- import { TUIRoomInfo, TUIVideoStreamType, TUIVideoQuality, TUIAudioQuality, TUIRole, TUIRoomEvents, TUIRoomType, TUISeatInfo, TUIRequestCallback, TUISpeechMode, TUIMediaDevice, TUISeatLockParams, TUILoginUserInfo, TUIUserInfo, TUIRequest, TUIVideoEncoderParams, TUIResolutionMode, TUISeatMode } from './types';
5
- import TUIRoomDeviceManager from './modules/deviceManager';
6
- export * from './types';
7
- export { TUIRoomDeviceManager };
8
- export { TRTCDeviceType, TRTCDeviceState, TRTCDeviceInfo, TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode, TRTCVideoStreamType, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, Rect, TRTCVideoEncParam, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVolumeInfo, TRTCLogLevel, } from 'trtc-cloud-js-sdk';
9
- export { TRTCCloud, TIM, TencentCloudChat };
1
+ import { ChatSDK } from '@tencentcloud/chat';
2
+ export { default as TIM, default as TencentCloudChat } from '@tencentcloud/chat';
3
+ import { TRTCScreenCaptureSourceInfo, TRTCDeviceInfo } from 'trtc-cloud-js-sdk';
4
+ export { Rect, default as TRTCCloud, TRTCDeviceInfo, TRTCDeviceState, TRTCDeviceType, TRTCLogLevel, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, TRTCVideoEncParam, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoRotation, TRTCVideoStreamType, TRTCVolumeInfo } from 'trtc-cloud-js-sdk';
5
+
6
+ declare enum TUIErrorCode {
7
+ ERR_SUCC = 0,
8
+ ERR_FAILED = -1,
9
+ ERR_FREQ_LIMIT = -2,
10
+ ERR_REPEAT_OPERATION = -3,
11
+ ERR_SDKAPPID_NOT_FOUND = -1000,
12
+ ERR_INVALID_PARAMETER = -1001,
13
+ ERR_SDK_NOT_INITIALIZED = -1002,
14
+ ERR_PERMISSION_DENIED = -1003,
15
+ ERR_REQUIRE_PAYMENT = -1004,
16
+ ERR_CAMERA_START_FAILED = -1100,
17
+ ERR_CAMERA_NOT_AUTHORIZED = -1101,
18
+ ERR_CAMERA_OCCUPIED = -1102,
19
+ ERR_CAMERA_DEVICE_EMPTY = -1103,
20
+ ERR_MICROPHONE_START_FAILED = -1104,
21
+ ERR_MICROPHONE_NOT_AUTHORIZED = -1105,
22
+ ERR_MICROPHONE_OCCUPIED = -1106,
23
+ ERR_MICROPHONE_DEVICE_EMPTY = -1107,
24
+ ERR_GET_SCREEN_SHARING_TARGET_FAILED = -1108,
25
+ ERR_START_SCREEN_SHARING_FAILED = -1109,
26
+ ERR_ROOM_ID_NOT_EXIST = -2100,
27
+ ERR_OPERATION_INVALID_BEFORE_ENTER_ROOM = -2101,
28
+ ERR_EXIT_NOT_SUPPORTED_FOR_ROOM_OWNER = -2102,
29
+ ERR_OPERATION_NOT_SUPPORTED_IN_CURRENT_ROOM_TYPE = -2103,
30
+ ERR_OPERATION_NOT_SUPPORTED_IN_CURRENT_SPEECH_MODE = -2104,
31
+ ERR_ROOM_ID_INVALID = -2105,
32
+ ERR_ROOM_ID_OCCUPIED = -2106,
33
+ ERR_ROOM_NAME_INVALID = -2107,
34
+ ERR_ALREADY_IN_OTHER_ROOM = -2108,
35
+ ERR_USER_NOT_EXIST = -2200,
36
+ ERR_USER_NOT_ENTERED = -2201,
37
+ ERR_NEED_OWNER_PERMISSION = -2300,
38
+ ERR_NEED_ADMIN_PERMISSION = -2301,
39
+ ERR_REQUEST_NO_PERMISSION = -2310,
40
+ ERR_REQUEST_ID_INVALID = -2311,
41
+ ERR_REQUEST_ID_REPEAT = -2312,
42
+ ERR_REQUEST_ID_CONFLICT = -2313,
43
+ ERR_MAX_SEAT_COUNT_LIMIT = -2340,
44
+ ERR_ALREADY_IN_SEAT = -2341,
45
+ ERR_SEAT_OCCUPIED = -2342,
46
+ ERR_SEAT_LOCKED = -2343,
47
+ ERR_SEAT_INDEX_NOT_EXIST = -2344,
48
+ ERR_USER_NOT_IN_SEAT = -2345,
49
+ ERR_ALL_SEAT_OCCUPIED = -2346,
50
+ ERR_SEAT_NOT_SUPPORT_LINK_MIC = -2347,
51
+ ERR_OPEN_MICROPHONE_NEED_SEAT_UNLOCK = -2360,
52
+ ERR_OPEN_MICROPHONE_NEED_PERMISSION_FROM_ADMIN = -2361,
53
+ ERR_OPEN_CAMERA_NEED_SEAT_UNLOCK = -2370,
54
+ ERR_OPEN_CAMERA_NEED_PERMISSION_FROM_ADMIN = -2371,
55
+ ERR_OPEN_SCREEN_SHARE_NEED_SEAT_UNLOCK = -2372,
56
+ ERR_OPEN_SCREEN_SHARE_NEED_PERMISSION_FROM_ADMIN = -2373,
57
+ ERR_SEND_MESSAGE_DISABLED_FOR_ALL = -2380,
58
+ ERR_SEND_MESSAGE_DISABLED_FOR_CURRENT = -2381
59
+ }
60
+ type TUIRoomInfo = {
61
+ roomId: string;
62
+ roomName: string;
63
+ roomType: TUIRoomType;
64
+ isSeatEnabled: boolean;
65
+ seatMode: TUISeatMode;
66
+ isMicrophoneDisableForAllUser: boolean;
67
+ isScreenShareDisableForAllUser: boolean;
68
+ isCameraDisableForAllUser: boolean;
69
+ isMessageDisableForAllUser: boolean;
70
+ maxSeatCount: number;
71
+ roomOwner: string;
72
+ createTime: number;
73
+ roomMemberCount: number;
74
+ };
75
+ type TUILoginUserInfo = {
76
+ userId: string;
77
+ userName: string;
78
+ avatarUrl: string;
79
+ customInfo: Record<string, any>;
80
+ };
81
+ type TUISeatLockParams = {
82
+ lockSeat: boolean;
83
+ lockVideo: boolean;
84
+ lockAudio: boolean;
85
+ };
86
+ declare enum TUIRole {
87
+ kRoomOwner = 0,
88
+ kAdministrator = 1,
89
+ kGeneralUser = 2
90
+ }
91
+ /**
92
+ * 消息结构体
93
+ * @typedef {object} TUIMessage
94
+ * @property {string} messageId 消息 Id
95
+ * @property {string} message 消息内容
96
+ * @property {number} timestamp 时间戳信息, 精确到秒
97
+ * @property {TUIRole} userId 用户 Id
98
+ * @property {boolean} userName 用户名称
99
+ * @property {boolean} avatarUrl 用户头像地址
100
+ */
101
+ type TUIMessage = {
102
+ messageId: string;
103
+ message: string;
104
+ timestamp: number;
105
+ userId: string;
106
+ userName: string;
107
+ avatarUrl: string;
108
+ };
109
+ declare enum TUIVideoQuality {
110
+ kVideoQuality_360p = 1,
111
+ kVideoQuality_540p = 2,
112
+ kVideoQuality_720p = 3,
113
+ kVideoQuality_1080p = 4
114
+ }
115
+ declare enum TUIAudioQuality {
116
+ kAudioProfileSpeech = 0,
117
+ kAudioProfileDefault = 1,
118
+ kAudioProfileMusic = 2
119
+ }
120
+ declare enum TUIVideoStreamType {
121
+ kCameraStream = 0,
122
+ kScreenStream = 1,
123
+ kCameraStreamLow = 2
124
+ }
125
+ declare enum TUINetworkQuality {
126
+ kQualityUnknown = 0,
127
+ kQualityExcellent = 1,
128
+ kQualityGood = 2,
129
+ kQualityPoor = 3,
130
+ kQualityBad = 4,
131
+ kQualityVeryBad = 5,
132
+ kQualityDown = 6
133
+ }
134
+ /**
135
+ * 消息结构体
136
+ * @typedef {object} TUINetwork
137
+ * @property {string} userId 用户 Id
138
+ * @property {TUINetworkQuality} quality 网络质量
139
+ * @property {number} upLoss 上行丢包率,单位 (%) 该数值越小越好,目前仅本地用户有该信息
140
+ * @property {TUIRole} downLoss 下行丢包率,单位 (%) 该数值越小越好,目前仅本地用户有该信息
141
+ * @property {Number} delay 网络延迟,单位 ms,目前仅本地用户有该信息
142
+ */
143
+ type TUINetwork = {
144
+ userId: string;
145
+ quality: TUINetworkQuality;
146
+ upLoss: number;
147
+ downLoss: number;
148
+ delay: number;
149
+ };
150
+ /**
151
+ * 视频编码参数
152
+ * @typedef {object} TUIVideoEncoderParams
153
+ * @property {number} fps 帧率设置
154
+ * @property {number} bitrate 目标编码码率设置
155
+ * @property {TUIVideoQuality} quality 上行视频分辨率
156
+ * @property {TUIVideoQuality} videoResolution 上行视频分辨率(自 v1.6.0 版本开始支持,v1.6.0 之前版本请使用 quality 参数)
157
+ * @property {TUIResolutionMode} resolutionMode 横竖屏模式
158
+ */
159
+ type TUIVideoEncoderParams = {
160
+ quality?: TUIVideoQuality;
161
+ videoResolution: TUIVideoQuality;
162
+ fps: number;
163
+ bitrate: number;
164
+ resolutionMode: TUIResolutionMode;
165
+ };
166
+ declare enum TUIRoomType {
167
+ kConference = 1,
168
+ kLivingRoom = 2
169
+ }
170
+ declare enum TUISpeechMode {
171
+ kFreeToSpeak = 1,
172
+ kApplyToSpeak = 2,
173
+ kSpeakAfterTakingSeat = 3
174
+ }
175
+ declare enum TUISeatMode {
176
+ kFreeToTake = 1,
177
+ kApplyToTake = 2
178
+ }
179
+ declare enum TUIMediaDevice {
180
+ kMicrophone = 1,
181
+ kCamera = 2,
182
+ kScreen = 3
183
+ }
184
+ declare enum TUICaptureSourceType {
185
+ kWindow = 0,
186
+ kScreen = 1
187
+ }
188
+ declare enum TUIChangeReason {
189
+ kChangedBySelf = 0,
190
+ kChangedByAdmin = 1
191
+ }
192
+ declare enum TUIKickedOutOfRoomReason {
193
+ kKickedByAdmin = 0,
194
+ kKickedByLoggedOnOtherDevice = 1,
195
+ kKickedByServer = 2
196
+ }
197
+ declare enum TUIRequestAction {
198
+ kInvalidAction = 0,
199
+ kRequestToOpenRemoteCamera = 1,
200
+ kRequestToOpenRemoteMicrophone = 2,
201
+ kRequestToConnectOtherRoom = 3,
202
+ kRequestToTakeSeat = 4,
203
+ kRequestRemoteUserOnSeat = 5,
204
+ kApplyToAdminToOpenLocalCamera = 6,
205
+ kApplyToAdminToOpenLocalMicrophone = 7,
206
+ kApplyToAdminToOpenLocalScreenShare = 8
207
+ }
208
+ declare enum TUIRequestCallbackType {
209
+ kRequestAccepted = 0,
210
+ kRequestRejected = 1,
211
+ kRequestCancelled = 2,
212
+ kRequestTimeout = 3,
213
+ kRequestError = 4
214
+ }
215
+ declare enum TRTCRole {
216
+ kAnchor = 0,
217
+ kAudience = 1
218
+ }
219
+ declare enum TUIResolutionMode {
220
+ kResolutionMode_Landscape = 0,
221
+ kResolutionMode_Portrait = 1
222
+ }
223
+ type TUIUserInfo = {
224
+ userId: string;
225
+ userName: string;
226
+ avatarUrl: string;
227
+ userRole: TUIRole;
228
+ hasAudioStream: boolean;
229
+ hasVideoStream: boolean;
230
+ hasScreenStream: boolean;
231
+ roomCustomInfo: Record<string, any>;
232
+ };
233
+ type TUISeatInfo = {
234
+ index: number;
235
+ userId: string;
236
+ locked: boolean;
237
+ isVideoLocked: boolean;
238
+ isAudioLocked: boolean;
239
+ };
240
+ type TUIRequest = {
241
+ requestAction: TUIRequestAction;
242
+ timestamp: number;
243
+ requestId: string;
244
+ userId: string;
245
+ content: string;
246
+ };
247
+ type TUIRequestCallback = {
248
+ requestCallbackType: TUIRequestCallbackType;
249
+ requestId: string;
250
+ userId: string;
251
+ code: number;
252
+ message: string;
253
+ };
254
+ declare enum TUIMediaDeviceType {
255
+ kMediaDeviceTypeUnknown = -1,
256
+ kMediaDeviceTypeAudioInput = 0,
257
+ kMediaDeviceTypeAudioOutput = 1,
258
+ kMediaDeviceTypeVideoCamera = 2
259
+ }
260
+ declare enum TUIMediaDeviceState {
261
+ kMediaDeviceStateAdd = 0,
262
+ kMediaDeviceStateRemove = 1,
263
+ kMediaDeviceStateActive = 2
264
+ }
265
+ declare enum TUIAudioRoute {
266
+ kAudioRouteSpeakerphone = 0,
267
+ kAudioRouteEarpiece = 1
268
+ }
269
+ type TUIDeviceInfo = {
270
+ deviceId: string;
271
+ deviceName: string;
272
+ deviceProperties?: {
273
+ supportedResolution?: {
274
+ width: number;
275
+ height: number;
276
+ }[];
277
+ };
278
+ };
279
+ /**
280
+ * **TUIRoomEngine 事件列表**<br>
281
+ * @namespace TUIRoomEvents
282
+ * @example
283
+ * import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';
284
+ * const roomEngine = new TUIRoomEngine();
285
+ * roomEngine.on(TUIRoomEvents.onError, (error) => {
286
+ * console.log('roomEngine.error', error);
287
+ * })
288
+ */
289
+ declare enum TUIRoomEvents {
290
+ /**
291
+ *
292
+ * @description 错误事件
293
+ * @event TUIRoomEvents#onError
294
+ * @param {object} options
295
+ * @param {number} options.code 错误代码
296
+ * @param {string} options.message 错误信息
297
+ * @example
298
+ * const roomEngine = new TUIRoomEngine();
299
+ * roomEngine.on(TUIRoomEvents.onError, (error) => {
300
+ * console.log('TUIRoomError error', error);
301
+ * })
302
+ */
303
+ onError = "onError",
304
+ /**
305
+ * @description 踢出房间事件
306
+ * @default 'onKickedOutOfRoom'
307
+ * @event TUIRoomEvents#onKickedOutOfRoom
308
+ * @param {object} options
309
+ * @param {string} options.roomId 房间号
310
+ * @param {TUIKickedOutOfRoomReason} options.reason 用户被踢出房间枚举
311
+ * @param {string} options.message 踢出房间信息
312
+ * @example
313
+ * const roomEngine = new TUIRoomEngine();
314
+ * roomEngine.on(TUIRoomEvents.onKickedOutOfRoom, ({ roomId, reason, message }) => {
315
+ * console.log('roomEngine.onKickedOutOfRoom', roomId, reason, message);
316
+ * });
317
+ */
318
+ onKickedOutOfRoom = "onKickedOutOfRoom",
319
+ /**
320
+ * @description 当前用户被踢下线
321
+ * @default 'onKickedOffLine'
322
+ * @event TUIRoomEvents#onKickedOffLine
323
+ * @param {string} options.message 用户被踢下线信息
324
+ * @example
325
+ * const roomEngine = new TUIRoomEngine();
326
+ * roomEngine.on(TUIRoomEvents.onKickedOffLine, ({ message }) => {
327
+ * console.log('roomEngine.onKickedOffLine', message);
328
+ * });
329
+ */
330
+ onKickedOffLine = "onKickedOffLine",
331
+ /**
332
+ * @description userSig 过期事件
333
+ * @default 'onUserSigExpired'
334
+ * @event TUIRoomEvents#onUserSigExpired
335
+ * @example
336
+ * const roomEngine = new TUIRoomEngine();
337
+ * roomEngine.on(TUIRoomEvents.onUserSigExpired, () => {
338
+ * console.log('roomEngine.onUserSigExpired');
339
+ * });
340
+ */
341
+ onUserSigExpired = "onUserSigExpired",
342
+ /**
343
+ * @description 主持人销毁房间事件
344
+ * @default 'onRoomDismissed'
345
+ * @event TUIRoomEvents#onRoomDismissed
346
+ * @param {object} options
347
+ * @param {string} options.roomId 房间号
348
+ * @example
349
+ * const roomEngine = new TUIRoomEngine();
350
+ * roomEngine.on(TUIRoomEvents.onRoomDismissed, ({ roomId }) => {
351
+ * console.log('roomEngine.onRoomDismissed', roomId);
352
+ * });
353
+ */
354
+ onRoomDismissed = "onRoomDismissed",
355
+ /**
356
+ * @description 房间名字修改事件
357
+ * @default 'onRoomNameChanged'
358
+ * @event TUIRoomEvents#onRoomChanged
359
+ * @param {object} options
360
+ * @param {string} options.roomName 房间名字
361
+ * @example
362
+ * const roomEngine = new TUIRoomEngine();
363
+ * roomEngine.on(TUIRoomEvents.onRoomNameChanged, ({ roomId, roomName }) =>{
364
+ * console.log('roomEngine.onRoomNameChanged', roomId, roomName);
365
+ * });
366
+ */
367
+ onRoomNameChanged = "onRoomNameChanged",
368
+ /**
369
+ * @description 房间模式修改事件
370
+ * @deprecated 该事件自 v2.0.0 版本废弃
371
+ * @default 'onRoomSpeechModeChanged'
372
+ * @event TUIRoomEvents#onRoomSpeechModeChanged
373
+ * @param {object} options
374
+ * @param {TUISpeechMode} options.speechMode 房间模式
375
+ * @example
376
+ * const roomEngine = new TUIRoomEngine();
377
+ * roomEngine.on(TUIRoomEvents.onRoomSpeechModeChanged, ({ roomId, speechMode }) =>{
378
+ * console.log('roomEngine.onRoomSpeechModeChanged', roomId, speechMode);
379
+ * });
380
+ */
381
+ onRoomSpeechModeChanged = "onRoomSpeechModeChanged",
382
+ /**
383
+ * @description 上麦模式修改事件
384
+ * @default 'onRoomSeatModeChanged'
385
+ * @event TUIRoomEvents#onRoomSeatModeChanged
386
+ * @param {object} options
387
+ * @param {TUISeatMode} options.seatMode 房间上麦模式
388
+ * @example
389
+ * const roomEngine = new TUIRoomEngine();
390
+ * roomEngine.on(TUIRoomEvents.onRoomSeatModeChanged, ({ roomId, seatMode }) =>{
391
+ * console.log('roomEngine.onRoomSeatModeChanged', roomId, seatMode);
392
+ * });
393
+ */
394
+ onRoomSeatModeChanged = "onRoomSeatModeChanged",
395
+ /**
396
+ * @description 所有成员摄像头使用权限改变事件
397
+ * @default 'onAllUserCameraDisableChanged'
398
+ * @event TUIRoomEvents#onAllUserCameraDisableChanged
399
+ * @param {object} options
400
+ * @param {boolean} options.isDisable 是否允许使用摄像头
401
+ * @example
402
+ * const roomEngine = new TUIRoomEngine();
403
+ * roomEngine.on(TUIRoomEvents.onAllUserCameraDisableChanged, ({ isDisable }) =>{
404
+ * console.log('roomEngine.onAllUserCameraDisableChanged', isDisable);
405
+ * });
406
+ */
407
+ onAllUserCameraDisableChanged = "onAllUserCameraDisableChanged",
408
+ /**
409
+ * @since v2.2.0
410
+ * @description 房间内所有用户屏幕分享被禁用事件
411
+ * @default 'onScreenShareForAllUserDisableChanged'
412
+ * @event TUIRoomEvents#onScreenShareForAllUserDisableChanged
413
+ * @param {object} options
414
+ * @param {boolean} options.isDisable 是否开启禁止屏幕分享
415
+ * @example
416
+ * const roomEngine = new TUIRoomEngine();
417
+ * roomEngine.on(TUIRoomEvents.onScreenShareForAllUserDisableChanged, ({ isDisable }) =>{
418
+ * console.log('roomEngine.onScreenShareForAllUserDisableChanged', isDisable);
419
+ * });
420
+ */
421
+ onScreenShareForAllUserDisableChanged = "onScreenShareForAllUserDisableChanged",
422
+ /**
423
+ * @description 所有成员麦克风使用权限改变事件
424
+ * @default 'onAllUserMicrophoneDisableChanged'
425
+ * @event TUIRoomEvents#onAllUserMicrophoneDisableChanged
426
+ * @param {object} options
427
+ * @param {boolean} options.isDisable 是否允许使用麦克风
428
+ * @example
429
+ * const roomEngine = new TUIRoomEngine();
430
+ * roomEngine.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, ({ isDisable }) =>{
431
+ * console.log('roomEngine.onAllUserMicrophoneDisableChanged', isDisable);
432
+ * });
433
+ */
434
+ onAllUserMicrophoneDisableChanged = "onAllUserMicrophoneDisableChanged",
435
+ /**
436
+ * @description 所有成员发送消息权限改变事件
437
+ * @default 'onSendMessageForAllUserDisableChanged'
438
+ * @event TUIRoomEvents#OnSendMessageForAllUserDisableChanged
439
+ * @param {object} options
440
+ * @param {boolean} options.isDisable 是否被允许
441
+ * @example
442
+ * const roomEngine = new TUIRoomEngine();
443
+ * roomEngine.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, ({ isDisable }) =>{
444
+ * console.log('roomEngine.onSendMessageForAllUserDisableChanged', isDisable);
445
+ * });
446
+ */
447
+ onSendMessageForAllUserDisableChanged = "onSendMessageForAllUserDisableChanged",
448
+ /**
449
+ * @description 房间最大麦位数修改事件
450
+ * @default 'onRoomMaxSeatCountChanged'
451
+ * @event TUIRoomEvents#onRoomMaxSeatCountChanged
452
+ * @param {object} options
453
+ * @param {boolean} options.maxSeatNumber 最大麦位数
454
+ * @example
455
+ * const roomEngine = new TUIRoomEngine();
456
+ * roomEngine.on(TUIRoomEvents.onRoomMaxSeatCountChanged, ({ maxSeatNumber }) =>{
457
+ * console.log('roomEngine.onRoomMaxSeatCountChanged', maxSeatNumber);
458
+ * });
459
+ */
460
+ onRoomMaxSeatCountChanged = "onRoomMaxSeatCountChanged",
461
+ /**
462
+ * @description 远端用户进入房间事件
463
+ * @default 'onRemoteUserEnterRoom'
464
+ * @event TUIRoomEvents#onRemoteUserEnterRoom
465
+ * @param {object} options
466
+ * @param {string} options.roomId 房间号
467
+ * @param {TUIUserInfo} options.userInfo 用户信息
468
+ * @example
469
+ * const roomEngine = new TUIRoomEngine();
470
+ * roomEngine.on(TUIRoomEvents.onRemoteUserEnterRoom, ({ roomId, userInfo }) => {
471
+ * console.log('roomEngine.onRemoteUserEnterRoom', roomId, userInfo);
472
+ * });
473
+ */
474
+ onRemoteUserEnterRoom = "onRemoteUserEnterRoom",
475
+ /**
476
+ * @description 远端用户离开房间事件
477
+ * @default 'onRemoteUserLeaveRoom'
478
+ * @event TUIRoomEvents#onRemoteUserLeaveRoom
479
+ * @param {object} options
480
+ * @param {string} options.roomId 房间号
481
+ * @param {TUIUserInfo} options.userInfo 用户信息
482
+ * @example
483
+ * const roomEngine = new TUIRoomEngine();
484
+ * roomEngine.on(TUIRoomEvents.onRemoteUserLeaveRoom, ({ roomId, userInfo }) => {
485
+ * console.log('roomEngine.onRemoteUserLeaveRoom', roomId, userInfo);
486
+ * });
487
+ */
488
+ onRemoteUserLeaveRoom = "onRemoteUserLeaveRoom",
489
+ /**
490
+ * @description 用户角色改变事件
491
+ * @default 'onKickedOutOfRoom'
492
+ * @event TUIRoomEvents#onUserRoleChanged
493
+ * @param {object} options
494
+ * @param {string} options.userId 用户Id
495
+ * @param {TUIRole} options.userRole 用户变更后的角色
496
+ * @example
497
+ * const roomEngine = new TUIRoomEngine();
498
+ * roomEngine.on(TUIRoomEvents.onUserRoleChanged, ({ userId, userRole }) => {
499
+ * console.log('roomEngine.onUserRoleChanged', userId, userRole);
500
+ * });
501
+ */
502
+ onUserRoleChanged = "onUserRoleChanged",
503
+ /**
504
+ * @description 用户视频状态改变事件
505
+ * @default 'onUserVideoStateChanged'
506
+ * @event TUIRoomEvents#onUserVideoStateChanged
507
+ * @param {object} options
508
+ * @param {string} options.userId 用户Id
509
+ * @param {TUIVideoStreamType} options.streamType 用户流类型
510
+ * @param {boolean} options.hasVideo 是否有视频流
511
+ * @param {TUIChangeReason} options.reason 变更原因
512
+ * @example
513
+ * const roomEngine = new TUIRoomEngine();
514
+ * roomEngine.on(TUIRoomEvents.onUserVideoStateChanged, ({ userId, streamType, hasVideo, reason }) => {
515
+ * console.log('roomEngine.onUserVideoStateChanged', userId, streamType, hasVideo, reason);
516
+ * });
517
+ */
518
+ onUserVideoStateChanged = "onUserVideoStateChanged",
519
+ /**
520
+ * @description 用户音频状态改变事件
521
+ * @default 'onUserAudioStateChanged'
522
+ * @event TUIRoomEvents#onUserAudioStateChanged
523
+ * @param {object} options
524
+ * @param {string} options.userId 用户Id
525
+ * @param {boolean} options.hasVideo 是否有音频流
526
+ * @param {TUIChangeReason} options.reason 原因
527
+ * @example
528
+ * const roomEngine = new TUIRoomEngine();
529
+ * roomEngine.on(TUIRoomEvents.onUserAudioStateChanged, ({ userId, hasAudio, reason }) => {
530
+ * console.log('roomEngine.onUserAudioStateChanged', userId, hasAudio, reason);
531
+ * });
532
+ */
533
+ onUserAudioStateChanged = "onUserAudioStateChanged",
534
+ /**
535
+ * @description 用户发送消息状态改变事件
536
+ * @default 'onSendMessageForUserDisableChanged'
537
+ * @event TUIRoomEvents#onSendMessageForUserDisableChanged
538
+ * @param {object} options
539
+ * @param {string} options.userId 成员 Id
540
+ * @param {boolean} options.isDisable 是否被允许
541
+ * @example
542
+ * const roomEngine = new TUIRoomEngine();
543
+ * roomEngine.on(TUIRoomEvents.onSendMessageForUserDisableChanged, ({ userId, isDisable }) =>{
544
+ * console.log('roomEngine.onSendMessageForUserDisableChanged', isDisable);
545
+ * });
546
+ */
547
+ onSendMessageForUserDisableChanged = "onSendMessageForUserDisableChanged",
548
+ /**
549
+ * @description 用户音量改变事件
550
+ * @default 'onUserVoiceVolumeChanged'
551
+ * @event TUIRoomEvents#onUserVoiceVolumeChanged
552
+ * @param {object} options
553
+ * @param {Array<TRTCVolumeInfo>} options.userVolumeList 房间内所有用户的音量, 包含 userId 及 volume 信息,volume 区间为 1~100;
554
+ * @example
555
+ * const roomEngine = new TUIRoomEngine();
556
+ * roomEngine.on(TUIRoomEvents.onUserVoiceVolumeChanged, ({ userVolumeList }) => {
557
+ * userVolumeList.forEach(userVolume => {
558
+ * console.log('roomEngine.onUserVoiceVolumeChanged', userVolume.userId, userVolume.volume);
559
+ * })
560
+ * });
561
+ */
562
+ onUserVoiceVolumeChanged = "onUserVoiceVolumeChanged",
563
+ /**
564
+ * @description 用户网络质量改变事件
565
+ * @default 'onUserNetworkQualityChanged'
566
+ * @event TUIRoomEvents#onUserNetworkQualityChanged
567
+ * @param {object} options
568
+ * @param {TUINetwork} options.userNetworkList 网络质量信息
569
+ * @example
570
+ * const roomEngine = new TUIRoomEngine();
571
+ * roomEngine.on(TUIRoomEvents.onUserNetworkQualityChanged, ({ userNetworkList }) => {
572
+ * userNetworkList.forEach(userNetwork => {
573
+ * console.log('roomEngine.onUserNetworkQualityChanged',
574
+ * userNetwork.userId, userNetwork.quality, userNetwork.upLoss, userNetwork.downLoss, userNetwork.delay);
575
+ * })
576
+ * });
577
+ */
578
+ onUserNetworkQualityChanged = "onUserNetworkQualityChanged",
579
+ /**
580
+ * @description 麦位列表改变事件
581
+ * @default 'onSeatListChanged'
582
+ * @event TUIRoomEvents#onSeatListChanged
583
+ * @param {object} options
584
+ * @param {Array<TUISeatInfo>} options.seatList 麦位列表
585
+ * @param {Array<TUISeatInfo>} options.seatedList 新增麦位列表
586
+ * @param {Array<TUISeatInfo>} options.leftList 离开的麦位列表
587
+ * @example
588
+ * const roomEngine = new TUIRoomEngine();
589
+ * roomEngine.on(TUIRoomEvents.onSeatListChanged, ({ seatList, seatedList, leftList }) => {
590
+ * console.log('roomEngine.onSeatListChanged',seatList, seatedList, leftList);
591
+ * });
592
+ */
593
+ onSeatListChanged = "onSeatListChanged",
594
+ /**
595
+ * @description 当前用户被踢下麦事件
596
+ * @default 'onKickedOffSeat'
597
+ * @event TUIRoomEvents#onKickedOffSeat
598
+ * @example
599
+ * const roomEngine = new TUIRoomEngine();
600
+ * roomEngine.on(TUIRoomEvents.onKickedOffSeat, ({ userId }) => {
601
+ * console.log('roomEngine.onKickedOffSeat', userId);
602
+ * });
603
+ */
604
+ onKickedOffSeat = "onKickedOffSeat",
605
+ /**
606
+ * @description 请求接收事件
607
+ * @default 'onRequestReceived'
608
+ * @event TUIRoomEvents#onRequestReceived
609
+ * @param {object} options
610
+ * @param {TUIRequest} options.request 请求接收
611
+ * @example
612
+ * const roomEngine = new TUIRoomEngine();
613
+ * roomEngine.on(TUIRoomEvents.onRequestReceived, ({ request }) => {
614
+ * console.log('roomEngine.onRequestReceived', request);
615
+ * });
616
+ */
617
+ onRequestReceived = "onRequestReceived",
618
+ /**
619
+ * @description 请求取消事件
620
+ * @default 'onRequestCancelled'
621
+ * @event TUIRoomEvents#onRequestCancelled
622
+ * @param {object} options
623
+ * @param {string} options.requestId 请求Id
624
+ * @param {string} options.userId 取消请求的用户Id
625
+ * @example
626
+ * const roomEngine = new TUIRoomEngine();
627
+ * roomEngine.on(TUIRoomEvents.onRequestCancelled, ({ requestId, userId }) => {
628
+ * console.log('roomEngine.onRequestCancelled', requestId, userId);
629
+ * });
630
+ */
631
+ onRequestCancelled = "onRequestCancelled",
632
+ /**
633
+ * @description 请求被其他 管理员/房主 处理事件
634
+ * @default 'onRequestProcessed'
635
+ * @event TUIRoomEvents#onRequestProcessed
636
+ * @param {object} options
637
+ * @param {string} options.requestId 请求Id
638
+ * @param {string} options.userId 处理该请求的 管理员/房主 的用户ID
639
+ * @example
640
+ * const roomEngine = new TUIRoomEngine();
641
+ * roomEngine.on(TUIRoomEvents.onRequestProcessed, ({ requestId, userId }) => {
642
+ * console.log('roomEngine.onRequestProcessed', requestId, userId);
643
+ * });
644
+ */
645
+ onRequestProcessed = "onRequestProcessed",
646
+ /**
647
+ * @description 接收文本消息事件
648
+ * @deprecated 该接口自 v2.0.0 版本废弃,请使用 tim 实例监听收消息事件
649
+ * @default 'onReceiveTextMessage'
650
+ * @event TUIRoomEvents#onReceiveTextMessage
651
+ * @param {object} options
652
+ * @param {string} options.roomId 房间Id
653
+ * @param {TUIMessage} options.message 接收的文本消息
654
+ * @example
655
+ * const roomEngine = new TUIRoomEngine();
656
+ * roomEngine.on(TUIRoomEvents.onReceiveTextMessage, ({ roomId, message }) => {
657
+ * console.log('roomEngine.onReceiveTextMessage', roomId, message);
658
+ * });
659
+ */
660
+ onReceiveTextMessage = "onReceiveTextMessage",
661
+ /**
662
+ * @description 接收自定义消息事件
663
+ * @deprecated 该接口自 v2.0.0 版本废弃,请使用 tim 实例监听收消息事件
664
+ * @default 'onReceiveCustomMessage'
665
+ * @event TUIRoomEvents#onReceiveCustomMessage
666
+ * @param {object} options
667
+ * @param {string} options.roomId 房间Id
668
+ * @param {TUIMessage} options.message 接收的自定义消息
669
+ * @example
670
+ * const roomEngine = new TUIRoomEngine();
671
+ * roomEngine.on(TUIRoomEvents.onReceiveCustomMessage, ({ roomId, message }) => {
672
+ * console.log('roomEngine.onReceiveCustomMessage', roomId, message);
673
+ * });
674
+ */
675
+ onReceiveCustomMessage = "onReceiveCustomMessage",
676
+ /**
677
+ * @description 设备变更事件
678
+ * @default 'onDeviceChange'
679
+ * @event TUIRoomEvents#onDeviceChange
680
+ * @param {object} options
681
+ * @param {string} options.deviceId 设备 Id
682
+ * @param {TRTCDeviceType} options.type 设备类型
683
+ * @param {TRTCDeviceState} options.state 设备变更状态
684
+ * @example
685
+ * const roomEngine = new TUIRoomEngine();
686
+ * roomEngine.on(TUIRoomEvents.onDeviceChange, ({ deviceId, type, state }) => {
687
+ * console.log('roomEngine.onDeviceChange', deviceId, type, state);
688
+ * });
689
+ */
690
+ onDeviceChange = "onDeviceChange",
691
+ /**
692
+ * @description 屏幕分享停止事件,当用户使用浏览器自带的【停止分享】按钮结束屏幕共享时,该用户会收到 'onUserScreenCaptureStopped' 事件用来修改屏幕共享状态。
693
+ * @default 'onUserScreenCaptureStopped'
694
+ * @event TUIRoomEvents#onUserScreenCaptureStopped
695
+ * @example
696
+ * const roomEngine = new TUIRoomEngine();
697
+ * roomEngine.on(TUIRoomEvents.onUserScreenCaptureStopped, () => {
698
+ * console.log('roomEngine.onUserScreenCaptureStopped');
699
+ * });
700
+ */
701
+ onUserScreenCaptureStopped = "onUserScreenCaptureStopped"
702
+ }
703
+ declare enum TUIRoomDeviceMangerEvents {
704
+ /**
705
+ * @description 设备变更事件
706
+ * @default 'onDeviceChange'
707
+ * @event TUIRoomDeviceMangerEvents#onDeviceChange
708
+ * @param {object} options
709
+ * @param {string} options.deviceId 设备 Id
710
+ * @param {TRTCDeviceType} options.type 设备类型
711
+ * @param {TRTCDeviceState} options.state 设备变更状态
712
+ * @example
713
+ * const roomEngine = new TUIRoomEngine();
714
+ * const deviceManager = roomEngine.getDeviceManager();
715
+ * deviceManager.on(TUIRoomDeviceMangerEvents.onDeviceChange, ({ deviceId, type, state }) => {
716
+ * console.log('deviceManager.onDeviceChange', deviceId, type, state);
717
+ * });
718
+ */
719
+ onDeviceChanged = "onDeviceChanged",
720
+ /**
721
+ * @description 麦克风测试音量
722
+ * @default 'onTestMicVolume'
723
+ * @event TUIRoomDeviceMangerEvents#onTestMicVolume
724
+ * @param {object} options
725
+ * @param {number} options.volume 麦克风测试音量(0-100)
726
+ * @example
727
+ * const roomEngine = new TUIRoomEngine();
728
+ * const deviceManager = roomEngine.getDeviceManager();
729
+ * deviceManager.on(TUIRoomDeviceMangerEvents.onTestMicVolume, ({ volume }) => {
730
+ * console.log('deviceManager.onTestMicVolume', volume);
731
+ * });
732
+ */
733
+ onTestMicVolume = "onTestMicVolume",
734
+ /**
735
+ * @description 扬声器测试音量,仅 Electron 端支持
736
+ * @default 'onTestSpeakerVolume'
737
+ * @event TUIRoomDeviceMangerEvents#onTestSpeakerVolume
738
+ * @param {object} options
739
+ * @param {number} options.volume 扬声器测试音量(0-100)
740
+ * @example
741
+ * const roomEngine = new TUIRoomEngine();
742
+ * const deviceManager = roomEngine.getDeviceManager();
743
+ * deviceManager.on(TUIRoomDeviceMangerEvents.onTestSpeakerVolume, ({ volume }) => {
744
+ * console.log('deviceManager.onTestSpeakerVolume', volume);
745
+ * });
746
+ */
747
+ onTestSpeakerVolume = "onTestSpeakerVolume"
748
+ }
749
+
750
+ declare class Logger {
751
+ private logger;
752
+ private trtcCloud;
753
+ private seq;
754
+ constructor(trtcCloud: any, options?: {
755
+ userId: string;
756
+ sdkAppId: number;
757
+ seq: number;
758
+ });
759
+ getLogMessage(params: any[]): string;
760
+ update(options: {
761
+ sdkAppId: number;
762
+ userId: string;
763
+ }): void;
764
+ debug(...params: any[]): void;
765
+ info(...params: any[]): void;
766
+ warn(...params: any[]): void;
767
+ error(...params: any[]): void;
768
+ private getTime;
769
+ }
770
+
771
+ /**
772
+ * 设备管理
773
+ * @class DeviceManager
774
+ */
775
+ declare class TUIRoomDeviceManager {
776
+ private deviceManagerWASM;
777
+ private logger;
778
+ private static deviceManager;
779
+ constructor(options: {
780
+ Module: any;
781
+ logger: Logger;
782
+ });
783
+ setDeviceManagerWASM(deviceManagerWASM: any): void;
784
+ /**
785
+ * @private
786
+ * 调用 TUIRoomEngineWASM 的异步方法
787
+ * @param funcName
788
+ * @param args
789
+ */
790
+ private JSCallNativeFunctionPromise;
791
+ /**
792
+ * 获取设备列表
793
+ * @param {TRTCDeviceType} type 设备类型
794
+ * @example
795
+ * // 获取设备管理 Manager
796
+ * const roomEngine = new TUIRoomEngine();
797
+ * const deviceManager = roomEngine.getDeviceManager();
798
+ *
799
+ * // 获取摄像头设备列表
800
+ * const cameraList = await deviceManager.getDeviceList({ type: TUIMediaDeviceType.kMediaDeviceVideoCamera });
801
+ * // 获取麦克风设备列表
802
+ * const micList = await deviceManager.getDeviceList({ type: TUIMediaDeviceType.kMediaDeviceTypeAudioInput });
803
+ * // 获取扬声器设备列表
804
+ * const speakerList = await deviceManager.getDeviceList({ type: TUIMediaDeviceType.kMediaDeviceTypeAudioOutput });
805
+ * @returns {Promise} Array<TUIDeviceInfo>
806
+ */
807
+ getDevicesList(options: {
808
+ type: TUIMediaDeviceType;
809
+ }): Promise<TUIDeviceInfo[]>;
810
+ /**
811
+ * 设置当前使用设备
812
+ * @param {TRTCDeviceType} type 设备类型
813
+ * @param {string} deviceId 设备 Id
814
+ * @example
815
+ * // 获取设备管理 Manager
816
+ * const roomEngine = new TUIRoomEngine();
817
+ * const deviceManager = roomEngine.getDeviceManager();
818
+ *
819
+ * // 设置当前麦克风设备
820
+ * deviceManager.setCurrentDevice({
821
+ * type: TUIMediaDeviceType.kMediaDeviceTypeAudioInput,
822
+ * deviceId: 'default',
823
+ * });
824
+ * // 设置当前扬声器设备
825
+ * deviceManager.setCurrentDevice({
826
+ * type: TUIMediaDeviceType.kMediaDeviceTypeAudioOutput,
827
+ * deviceId: 'default',
828
+ * });
829
+ * // 设置当前摄像头设备
830
+ * deviceManager.setCurrentDevice({
831
+ * type: TUIMediaDeviceType.kMediaDeviceVideoCamera,
832
+ * deviceId: '',
833
+ * });
834
+ * @returns {void}
835
+ */
836
+ setCurrentDevice(options: {
837
+ type: TUIMediaDeviceType;
838
+ deviceId: string;
839
+ }): Promise<void>;
840
+ /**
841
+ * 获取当前使用的设备信息
842
+ * @param {object} options 获取当前设备信息的参数
843
+ * @param {TUIMediaDeviceType} options.type 设备类型
844
+ * @example
845
+ * // 获取设备管理 Manager
846
+ * const roomEngine = new TUIRoomEngine();
847
+ * const deviceManager = roomEngine.getDeviceManager();
848
+ * @returns {TUIDeviceInfo}
849
+ */
850
+ getCurrentDevice(options: {
851
+ type: TUIMediaDeviceType;
852
+ }): TUIDeviceInfo;
853
+ /**
854
+ * 开始进行摄像头测试
855
+ * @param {object} options 摄像头测试参数
856
+ * @param {string} options.view 显示摄像头测试的视频区域, 传入的 view 为承载预览画面 div 元素的 id
857
+ * @returns {Promise<void>}
858
+ *
859
+ * @example
860
+ * const roomEngine = new TUIRoomEngine();
861
+ * await roomEngine.startCameraDeviceTest({ view: 'test-preview' });
862
+ */
863
+ startCameraDeviceTest(options: {
864
+ view: string;
865
+ }): Promise<void>;
866
+ /**
867
+ * 停止摄像头测试
868
+ * @returns {Promise<void>}
869
+ * @example
870
+ * const roomEngine = new TUIRoomEngine();
871
+ * await roomEngine.stopCameraDeviceTest();
872
+ */
873
+ stopCameraDeviceTest(): Promise<void>;
874
+ /**
875
+ * 开始进行麦克风测试
876
+ * @param options
877
+ * @param {number} options.interval 麦克风音量的回调时间
878
+ */
879
+ startMicDeviceTest(options: {
880
+ interval: number;
881
+ }): Promise<void>;
882
+ /**
883
+ * 停止进行麦克风测试
884
+ */
885
+ stopMicDeviceTest(): Promise<void>;
886
+ startSpeakerDeviceTest(options: {
887
+ filePath: string;
888
+ }): Promise<void>;
889
+ stopSpeakerDeviceTest(): Promise<void>;
890
+ isFrontCamera(): boolean;
891
+ /**
892
+ * 切换前后置摄像头,该接口只适用于移动端浏览器
893
+ * @param {Object} options
894
+ * @param {boolean} options.isFrontCamera 是否切换为前置摄像头
895
+ *
896
+ * const deviceManager = roomEngine.instance?.getDeviceManager();
897
+ * // 移动端切换为前置摄像头
898
+ * await deviceManager?.switchCamera({ isFrontCamera: true });
899
+ * // 移动端切换为后置摄像头
900
+ * await deviceManager?.switchCamera({ isFrontCamera: false });
901
+ */
902
+ switchCamera(options: {
903
+ isFrontCamera: boolean;
904
+ }): Promise<void>;
905
+ isAutoFocusEnabled(): boolean;
906
+ enableCameraTorch(options: {
907
+ enabled: boolean;
908
+ }): void;
909
+ setAudioRoute(options: {
910
+ route: TUIAudioRoute;
911
+ }): void;
912
+ /**
913
+ * 监听 roomEngine 的事件
914
+ * @param event TUIRoomEvents
915
+ * @param func function
916
+ * @returns {void}
917
+ *
918
+ * @example
919
+ * const roomEngine = new TUIRoomEngine();
920
+ * const deviceManager = roomEngine.getDeviceManager();
921
+ * deviceManager.on(event, func);
922
+ */
923
+ on(event: TUIRoomDeviceMangerEvents, func: (...args: any[]) => void): void;
924
+ private handleTrtcCloudBindEvent;
925
+ off(event: string, func: (...args: any[]) => void): void;
926
+ }
927
+
10
928
  /**
11
929
  * TUIRoomEngine 提供了音视频房间的能力
12
930
  *
@@ -65,7 +983,7 @@ declare class TUIRoomEngine {
65
983
  sdkAppId: number;
66
984
  userId: string;
67
985
  userSig: string;
68
- tim?: TIM;
986
+ tim?: ChatSDK;
69
987
  }): Promise<void>;
70
988
  /**
71
989
  * 设置当前用户基本信息(用户名、用户头像)
@@ -1333,7 +2251,7 @@ declare class TUIRoomEngine {
1333
2251
  * const roomEngine = new TUIRoomEngine();
1334
2252
  * const trtcCloud = roomEngine.getTIM();
1335
2253
  */
1336
- getTIM(): any;
2254
+ getTIM(): ChatSDK;
1337
2255
  destroy(): void;
1338
2256
  /**
1339
2257
  * 实验性接口
@@ -1343,5 +2261,6 @@ declare class TUIRoomEngine {
1343
2261
  */
1344
2262
  static callExperimentalAPI(jsonStr: string): Promise<void>;
1345
2263
  private static handleSetFramework;
1346
- }
1347
- export default TUIRoomEngine;
2264
+ }
2265
+
2266
+ export { TRTCRole, TUIAudioQuality, TUIAudioRoute, TUICaptureSourceType, TUIChangeReason, type TUIDeviceInfo, TUIErrorCode, TUIKickedOutOfRoomReason, type TUILoginUserInfo, TUIMediaDevice, TUIMediaDeviceState, TUIMediaDeviceType, type TUIMessage, type TUINetwork, TUINetworkQuality, type TUIRequest, TUIRequestAction, type TUIRequestCallback, TUIRequestCallbackType, TUIResolutionMode, TUIRole, TUIRoomDeviceManager, TUIRoomDeviceMangerEvents, TUIRoomEvents, type TUIRoomInfo, TUIRoomType, type TUISeatInfo, type TUISeatLockParams, TUISeatMode, TUISpeechMode, type TUIUserInfo, type TUIVideoEncoderParams, TUIVideoQuality, TUIVideoStreamType, TUIRoomEngine as default };