@tencentcloud/tuiroom-engine-js 2.0.3 → 2.2.0

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
@@ -2,7 +2,9 @@ import TIM from '@tencentcloud/chat';
2
2
  import TencentCloudChat from '@tencentcloud/chat';
3
3
  import TRTCCloud, { TRTCDeviceInfo, TRTCScreenCaptureSourceInfo } from 'trtc-cloud-js-sdk';
4
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';
5
6
  export * from './types';
7
+ export { TUIRoomDeviceManager };
6
8
  export { TRTCDeviceType, TRTCDeviceState, TRTCDeviceInfo, TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode, TRTCVideoStreamType, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, Rect, TRTCVideoEncParam, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVolumeInfo, TRTCLogLevel, } from 'trtc-cloud-js-sdk';
7
9
  export { TRTCCloud, TIM, TencentCloudChat };
8
10
  /**
@@ -14,6 +16,8 @@ declare class TUIRoomEngine {
14
16
  static className: string;
15
17
  private static isReady;
16
18
  private roomEngineWASM;
19
+ private deviceManager;
20
+ private deviceManagerWASM;
17
21
  private static userId;
18
22
  private static sdkAppId;
19
23
  private static Module;
@@ -69,6 +73,7 @@ declare class TUIRoomEngine {
69
73
  * @param {object} options
70
74
  * @param {string} options.userName 用户名,必填
71
75
  * @param {string} options.avatarUrl 用户头像,必填
76
+ * @deprecated customInfo 字段自 v2.2.0 版本废弃
72
77
  * @param {object=} options.customInfo 用户自定义资料
73
78
  * App 管理员可以通过 [即时通信 IM 控制台 > 用户自定义字段](https://console.cloud.tencent.com/im/user-data) 新增自定义资料字段
74
79
  * 用户自定义字段生效以后,用户可以调用 setSelfInfo 接口设置自定义资料
@@ -128,6 +133,7 @@ declare class TUIRoomEngine {
128
133
  * 自由上麦模式,台下观众可以自由上麦,无需申请,seatMode 设置为 TUISeatMode.kFreeToTake
129
134
  * 申请上麦模式,台下观众上麦需要房主或者管理员同意后才能上麦,seatMode 设置为 TUISeatMode.kApplyToTake
130
135
  * @param {boolean=} [options.isMicrophoneDisableForAllUser=false] 是否开启全员禁麦,默认不开启全员禁麦(创建房间可选参数)
136
+ * @param {boolean=} [options.isScreenShareDisableForAllUser=false] 是否开启禁止屏幕分享,默认不开启禁止屏幕分享权限(该属性自 v2.2.0 版本 以后支持,创建房间可选参数)
131
137
  * @param {boolean=} [options.isCameraDisableForAllUser=false] 是否开启全员禁画,默认不开启全员禁画(创建房间可选参数)
132
138
  * @param {boolean=} [options.isMessageDisableForAllUser=false] 是否允许成员发送消息,默认不禁止(创建房间可选参数)
133
139
  * @param {number=} options.maxSeatCount 最大麦位数量 (创建房间可选参数)<br>
@@ -151,6 +157,7 @@ declare class TUIRoomEngine {
151
157
  isSeatEnabled?: boolean;
152
158
  seatMode?: TUISeatMode;
153
159
  isMicrophoneDisableForAllUser?: boolean;
160
+ isScreenShareDisableForAllUser?: boolean;
154
161
  isCameraDisableForAllUser?: boolean;
155
162
  isMessageDisableForAllUser?: boolean;
156
163
  maxSeatCount?: number;
@@ -240,7 +247,7 @@ declare class TUIRoomEngine {
240
247
  seatMode: TUISeatMode;
241
248
  }): Promise<void>;
242
249
  /**
243
- * 获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 100
250
+ * 获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 50
244
251
  *
245
252
  * @param {object=} options 获取用户列表的参数
246
253
  * @param {number=} options.nextSequence 偏移量,默认从 0 开始拉取用户<br/>
@@ -252,10 +259,12 @@ declare class TUIRoomEngine {
252
259
  * const roomEngine = new TUIRoomEngine();
253
260
  * const userList = [];
254
261
  * let result;
262
+ * let nextSequence = 0;
255
263
  * do {
256
- * result = await roomEngine.getUserList();
264
+ * result = await roomEngine.getUserList({ nextSequence });
257
265
  * userList.push(...result.userInfoList);
258
- * } while (result.nextSequence !== 0)
266
+ * nextSequence = result.nextSequence;
267
+ * } while (nextSequence !== 0)
259
268
  */
260
269
  getUserList(options?: {
261
270
  nextSequence?: number;
@@ -276,10 +285,33 @@ declare class TUIRoomEngine {
276
285
  getUserInfo(options: {
277
286
  userId: string;
278
287
  }): Promise<any>;
288
+ /**
289
+ * 设置用户的自定义信息,该接口需要在进房后调用;
290
+ * 主持人可以设置自己,管理员及普通用户的自定义信息;
291
+ * 管理员可以设置自己及普通用户的自定义信息;
292
+ * 普通用户仅可以设置自己的自定义信息;
293
+ * @param {object} options 设置用户的自定义信息
294
+ * @param {string} options.userId 用户 userId
295
+ * @param {object} options.customInfo 用户自定义信息
296
+ *
297
+ * @example
298
+ * const roomEngine = new TUIRoomEngine();
299
+ * await roomEngine.setCustomInfoForUser({
300
+ * userId: 'user_12345',
301
+ * customInfo: {
302
+ * 'key1': 'value1',
303
+ * 'key2': 'value2',
304
+ * }
305
+ * });
306
+ */
307
+ setCustomInfoForUser(options: {
308
+ userId: string;
309
+ customInfo: Record<string, string>;
310
+ }): Promise<void>;
279
311
  /**
280
312
  * 设置本地视频流的渲染位置
281
313
  * @param {object} options 设置本地视频流的渲染位置的参数
282
- * @param {string | Array<string>} options.view 本地视频流的渲染位置
314
+ * @param {string | Array<string> | null} options.view 本地视频流的渲染位置,如果传入 null 则不预览摄像头画面,但不影响摄像头采集,会正常推流。
283
315
  * @returns {Promise<void>}
284
316
  * @desc 自 v1.6.1 版本起,setLocalVideoView 不再需要传入 streamType 参数
285
317
  *
@@ -292,7 +324,7 @@ declare class TUIRoomEngine {
292
324
  * });
293
325
  */
294
326
  setLocalVideoView(options: {
295
- view: string | Array<string>;
327
+ view: string | Array<string> | null;
296
328
  streamType?: TUIVideoStreamType;
297
329
  }): void;
298
330
  /**
@@ -838,8 +870,8 @@ declare class TUIRoomEngine {
838
870
  /**
839
871
  * 麦下用户可调用 takeSeat 成为麦上用户,仅麦上用户可发布本地音视频流。<br/>
840
872
  * 主持人&管理员调用 takeSeat 成功后即为麦上用户。<br/>
841
- * roomInfo.SpeechModeTUISpeechMode.kFreeToSpeak 模式时,普通用户调用 takeSeat 方法成功后即为麦上用户。<br/>
842
- * roomInfo.SpeechModeTUISpeechMode.kSpeakAfterTakingSeat 模式时,普通用户调用 takeSeat 方法需要等待主持人/管理员的同意后成为麦上用户。<br/>
873
+ * roomInfo.seatModeTUISeatMode.kFreeToTake 模式时,普通用户调用 takeSeat 方法成功后即为麦上用户。<br/>
874
+ * roomInfo.seatModeTUISeatMode.kApplyToTake 模式时,普通用户调用 takeSeat 方法需要等待主持人/管理员的同意后成为麦上用户。<br/>
843
875
  * 麦上用户的变更通过 TUIRoomEvents.onSeatListChanged 通知所有用户。<br/>
844
876
  * @param {object} options 获取麦位的参数
845
877
  * @param {number} options.seatIndex 麦位 index, 无麦位序号时设置为 -1
@@ -852,13 +884,13 @@ declare class TUIRoomEngine {
852
884
  * const roomEngine = new TUIRoomEngine();
853
885
  *
854
886
  * // 情景一:主持人/管理员上麦
855
- * // 情景二:roomInfo.SpeechModeTUISpeechMode.kFreeToSpeak 模式时,普通用户上麦
887
+ * // 情景二:roomInfo.seatModeTUISeatMode.kFreeToTake 模式时,普通用户上麦
856
888
  * await roomEngine.takeSeat({
857
889
  * seatIndex: -1,
858
890
  * timeout: 0,
859
891
  * });
860
892
  *
861
- * // 情景三:roomInfo.SpeechModeTUISpeechMode.kSpeakAfterTakingSeat 模式时,普通用户上麦
893
+ * // 情景三:roomInfo.seatModeTUISeatMode.kApplyToTake 模式时,普通用户上麦
862
894
  * const request = await roomEngine.instance?.takeSeat({
863
895
  * seatIndex: -1,
864
896
  * timeout: 0,
@@ -985,6 +1017,16 @@ declare class TUIRoomEngine {
985
1017
  seatIndex: number;
986
1018
  lockParams: TUISeatLockParams;
987
1019
  }): Promise<any>;
1020
+ /**
1021
+ * 主持人/管理员 获取房间内申请上麦用户的请求列表
1022
+ * @returns {Promise<TUIRequest[]>}
1023
+ *
1024
+ * @example
1025
+ * const roomEngine = new TUIRoomEngine();
1026
+ * const seatList = await roomEngine.getSeatApplicationList();
1027
+ * ;
1028
+ */
1029
+ getSeatApplicationList(): Promise<TUIRequest[]>;
988
1030
  /**
989
1031
  * 发送文本消息
990
1032
  * @deprecated 该接口自 v2.0.0 版本废弃,请使用 {@link getTIM} 方法获取 tim 实例发送消息
@@ -1003,6 +1045,7 @@ declare class TUIRoomEngine {
1003
1045
  }): Promise<void>;
1004
1046
  /**
1005
1047
  * 发送自定义消息
1048
+ * @deprecated 该接口自 v2.0.0 版本废弃,请使用 {@link getTIM} 方法获取 tim 实例发送消息
1006
1049
  * @param {object} options
1007
1050
  * @param {string} options.messageText 自定义消息内容
1008
1051
  * @returns {Promise<void>}
@@ -1261,6 +1304,17 @@ declare class TUIRoomEngine {
1261
1304
  * 停止进行麦克风测试
1262
1305
  */
1263
1306
  stopMicDeviceTest(): Promise<void>;
1307
+ /**
1308
+ * v2.1.0 版本起支持使用 getMediaDeviceManager 获取 deviceManager 模块
1309
+ * @since v2.1.0
1310
+ * @example
1311
+ * // 获取设备管理模块
1312
+ * const deviceManager = roomEngine.getMediaDeviceManager();
1313
+ *
1314
+ * @returns {TUIRoomDeviceManager} deviceManager
1315
+ */
1316
+ getMediaDeviceManager(): TUIRoomDeviceManager;
1317
+ private handleDeviceManagerWASM;
1264
1318
  /**
1265
1319
  * 获取 trtcCloud 实例
1266
1320
  * @returns {TRTCCloud} trtcCloud