@tencentcloud/tuiroom-engine-electron 1.0.1 → 1.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
@@ -1,6 +1,6 @@
1
1
  import TIM from "tim-js-sdk";
2
2
  import TRTCCloud, { TRTCDeviceInfo, TRTCScreenCaptureSourceInfo } from 'trtc-electron-sdk';
3
- import { TUIRoomInfo, TUIVideoStreamType, TUIVideoProfile, TUIAudioProfile, TUIRole, TUIRoomEvents, TUIRoomType, TUISeatInfo, TUIRequestCallback } from './types';
3
+ import { TUIRoomInfo, TUIVideoStreamType, TUIVideoQuality, TUIAudioQuality, TUIRole, TUIRoomEvents, TUIRoomType, TUISeatInfo, TUIRequestCallback, TUISpeechMode, TUIMediaDevice, TUISeatLockParams, TUILoginUserInfo, TUIUserInfo, TUIRequest } from './types';
4
4
  export * from './types';
5
5
  export { TRTCDeviceType, TRTCDeviceState, TRTCDeviceInfo, TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode, TRTCVideoStreamType, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, Rect, TRTCVideoEncParam, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCScreenCaptureProperty } from 'trtc-electron-sdk';
6
6
  /**
@@ -17,6 +17,8 @@ declare class TUIRoomEngine {
17
17
  private static Module;
18
18
  private logger;
19
19
  private roomId;
20
+ private localVideoQuality;
21
+ private LocalAudioQuality;
20
22
  static setModule(Module: any): void;
21
23
  static once(event: string, func: Function): void;
22
24
  constructor();
@@ -33,25 +35,25 @@ declare class TUIRoomEngine {
33
35
  */
34
36
  private JSCallNativeFunctionPromise;
35
37
  /**
36
- * 登录 TUIRoomEngine
37
- *
38
- * @param {object} options
39
- * @param {number} options.sdkAppId sdkAppId <br>
40
- * 在 [实时音视频控制台](https://console.cloud.tencent.com/trtc) 单击 **应用管理** > **创建应用** 创建新应用之后,即可在 **应用信息** 中获取 sdkAppId 信息。
41
- * @param {string} options.userId 用户ID <br>
42
- * 建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
43
- * @param {string} options.userSig userSig 签名 <br>
44
- * 计算 userSig 的方式请参考 [UserSig 相关](https://cloud.tencent.com/document/product/647/17275)。
45
- * @returns {Promise<void>}
46
- *
47
- * @example
48
- * // 登录 TUIRoomEngine
49
- * await TUIRoomEngine.login({
50
- * sdkAppId: 0, // 填写您申请的 sdkAppId
51
- * userId: '', // 填写您业务对应的 userId
52
- * userSig: '', // 填写服务器或本地计算的 userSig
53
- * })
54
- */
38
+ * 登录 TUIRoomEngine
39
+ *
40
+ * @param {object} options
41
+ * @param {number} options.sdkAppId sdkAppId <br>
42
+ * 在 [实时音视频控制台](https://console.cloud.tencent.com/trtc) 单击 **应用管理** > **创建应用** 创建新应用之后,即可在 **应用信息** 中获取 sdkAppId 信息。
43
+ * @param {string} options.userId 用户ID <br>
44
+ * 建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
45
+ * @param {string} options.userSig userSig 签名 <br>
46
+ * 计算 userSig 的方式请参考 [UserSig 相关](https://cloud.tencent.com/document/product/647/17275)。
47
+ * @returns {Promise<void>}
48
+ *
49
+ * @example
50
+ * // 登录 TUIRoomEngine
51
+ * await TUIRoomEngine.login({
52
+ * sdkAppId: 0, // 填写您申请的 sdkAppId
53
+ * userId: '', // 填写您业务对应的 userId
54
+ * userSig: '', // 填写服务器或本地计算的 userSig
55
+ * })
56
+ */
55
57
  static login(options: {
56
58
  sdkAppId: number;
57
59
  userId: string;
@@ -77,6 +79,14 @@ declare class TUIRoomEngine {
77
79
  userName: string;
78
80
  avatarUrl: string;
79
81
  }): Promise<void>;
82
+ /** 获取当前用户信息接口
83
+ * @returns {Promise<TUILoginUserInfo>} loginUserInfo
84
+ * 该接口返回用户信息
85
+ *
86
+ * @example
87
+ * await TUIRoomEngine.getSelfInfo();
88
+ */
89
+ static getSelfInfo(): Promise<TUILoginUserInfo>;
80
90
  /**
81
91
  * 登出 TUIRoomEngine, 登出 TUIRoomEngine 时将销毁所有 roomEngine 实例
82
92
  *
@@ -85,45 +95,58 @@ declare class TUIRoomEngine {
85
95
  */
86
96
  static logout(): Promise<void>;
87
97
  /**
88
- * 主持人创建房间,调用 createRoom 的用户为房间的所有者。创建房间时可设置房间 Id, 房间名称,以及房间是否允许加入用户开启音视频,发送消息等功能。
98
+ * 主持人创建房间,调用 createRoom 的用户为房间的所有者。创建房间时可设置房间 Id,房间名称,房间类型,发言模式以及房间是否允许加入用户开启音视频,发送消息等功能。
89
99
  *
90
100
  * @param {object} options
91
101
  * @param {string} options.roomId 房间 Id,必填, roomId 限制长度为64字节,且仅支持以下范围的字符集:<br>
92
102
  * - 大小写英文字母(a-zA-Z)
93
103
  * - 数字(0-9)
94
104
  * - 空格 ! # $ % & ( ) + - : ; < = . > ? @ [ ] ^ _ { } | ~ ,
95
- * @param {string} [options.name] 房间名称,必填,且不能为空字符串
96
- * @param {TUIRoomType} [options.roomType] 房间类型, 必填 <br>
97
- * 教育及会议场景设置房间类型为 TUIRoomType.kGroup,直播场景设置房间类型为 TUIRoomType.kOpen;
98
- * @param {number=} options.maxSeatCount 最大麦位数量 <br>
99
- * roomType TUIRoomType.kGroup (教育及会议场景) 时,maxSeatCount 值不做限制;
100
- * roomType 为 TUIRoomType.kOpen (直播场景) 时,maxSeatCount 最大限制为 16;
101
- * @param {boolean=} [options.enableAudio=true] 是否允许加入用户打开音频
102
- * @param {boolean=} [options.enableVideo=true] 是否允许加入用户打开视频
103
- * @param {boolean=} [options.enableMessage=true] 是否允许加入用户发送消息
104
- * @param {boolean=} [options.enableSeatControl=false] 是否开启麦位控制
105
+ * @param {string=} [options.roomName=roomId] 房间名称,默认值为 roomId,传入的值不能为空字符串
106
+ * @param {TUIRoomType=} [options.roomType=TUIRoomType.kConference] 房间类型, 默认值为 TUIRoomType.kConference <br>
107
+ * 办公协同、医疗问诊、远程会议、教育场景,roomType 设置为 TUIRoomType.kConference
108
+ * 电商直播、语聊房场景,roomType 设置为 TUIRoomType.kLivingRoom
109
+ * @param {TUISpeechMode=} [options.speechMode=TUISpeechMode.kFreeToSpeak] 房间内发言模式,默认值为 TUISpeechMode.kFreeToSpeak
110
+ * 1. roomType 为 TUIRoomType.kConference (教育及会议场景) 时:
111
+ * a. speechMode 设置为 TUISpeechMode.kFreeToSpeak,用户进房默认可以打开摄像头和麦克风
112
+ * b. speechMode 设置为 TUISpeechMode.kApplyToSpeak,用户进房默认不打开摄像头和麦克风,需要向主持人申请打开摄像头或麦克风
113
+ * TUIRoomType.kConference 场景下,TUISpeechMode.kFreeToSpeak 及 TUISpeechMode.kApplyToSpeak 模式可互相切换
114
+ * c. speechMode 设置为 TUISpeechMode.kSpeakAfterTakingSeat,用户进房后需要调用 takeSeat 上麦接口获取打开摄像头和麦克风的权限
115
+ *
116
+ * 2. roomType 为 TUIRoomType.kLivingRoom (直播场景) 时:
117
+ * a. speechMode 设置为 TUISpeechMode.kFreeToSpeak,上麦不需要主持人同意
118
+ * b. speechMode 设置为 TUISpeechMode.kSpeakAfterTakingSeat,上麦需要主持人同意
119
+ * TUIRoomType.kLivingRoom 场景下,TUISpeechMode.kFreeToSpeak 及 TUISpeechMode.kSpeakAfterTakingSeat 模式可互相切换
120
+ * @param {boolean=} [options.isMicrophoneDisableForAllUser=false] 是否开启全员禁麦,默认不开启全员禁麦(创建房间可选参数)
121
+ * @param {boolean=} [options.isCameraDisableForAllUser=false] 是否开启全员禁画,默认不开启全员禁画(创建房间可选参数)
122
+ * @param {boolean=} [options.isMessageDisableForAllUser=false] 是否允许成员发送消息,默认不禁止(创建房间可选参数)
123
+ * @param {number=} options.maxSeatCount 最大麦位数量 (创建房间可选参数)<br>
124
+ * roomType 为 TUIRoomType.kConference (教育及会议场景) 时,maxSeatCount 值不做限制;
125
+ * roomType 为 TUIRoomType.kLivingRoom (直播场景) 时,maxSeatCount 最大限制为 16;
126
+ * @param {boolean=} [options.enableCDNStreaming=false] 是否开启 CDN 直播流,默认值为 false
127
+ * @param {string=} [options.cdnStreamDomain=''] 直播推流域名,默认值为空
105
128
  * @returns {Promise<void>}
106
129
  *
107
130
  * @example
108
131
  * const roomEngine = new TUIRoomEngine();
109
132
  * await roomEngine.createRoom({
110
133
  * roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型
111
- * name: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节
112
- * roomType: TUIRoomType.kGroup, // 设置房间类型为 TUIRoomType.kGroup 类型
113
- * enableAudio: true, // 设置是否允许加入用户打开音频
114
- * enableVideo: true, // 设置是否允许加入用户打开视频
115
- * enableMessage: true, // 设置是否允许加入用户发送消息
134
+ * roomName: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节
135
+ * roomType: TUIRoomType.kConference, // 设置房间类型为 TUIRoomType.kConference 类型
136
+ * speechMode: TUISpeechMode.kFreeToSpeak, // 设置会议模式为自由发言模式
116
137
  * });
117
138
  */
118
139
  createRoom(options: {
119
140
  roomId: string;
120
- name: string;
121
- roomType: TUIRoomType;
141
+ roomName?: string;
142
+ roomType?: TUIRoomType;
143
+ speechMode?: TUISpeechMode;
144
+ isMicrophoneDisableForAllUser?: boolean;
145
+ isCameraDisableForAllUser?: boolean;
146
+ isMessageDisableForAllUser?: boolean;
122
147
  maxSeatCount?: number;
123
- enableAudio?: boolean;
124
- enableVideo?: boolean;
125
- enableMessage?: boolean;
126
- enableSeatControl?: boolean;
148
+ enableCDNStreaming?: boolean;
149
+ cdnStreamDomain?: string;
127
150
  }): Promise<void>;
128
151
  /**
129
152
  * 进入房间接口
@@ -134,7 +157,7 @@ declare class TUIRoomEngine {
134
157
  *
135
158
  * @example
136
159
  * const roomEngine = new TUIRoomEngine();
137
- * const roomInfo = await roomEngine.enterRoom({
160
+ * const roomDetailInfo = await roomEngine.enterRoom({
138
161
  * roomId: '12345',
139
162
  * });
140
163
  */
@@ -142,7 +165,7 @@ declare class TUIRoomEngine {
142
165
  roomId: string;
143
166
  }): Promise<TUIRoomInfo>;
144
167
  /**
145
- * 销毁房间接口,销毁房间必须由房间所有者发起,销毁房间之后房间不可进入
168
+ * 解散房间接口,解散房间必须由房间所有者发起,解散房间之后房间不可进入
146
169
  * @returns {Promise<void>}
147
170
  *
148
171
  * @example
@@ -162,42 +185,40 @@ declare class TUIRoomEngine {
162
185
  /**
163
186
  * 获取房间信息
164
187
  * @returns {Promise<TUIRoomInfo>} roomInfo
165
- * 该接口返回房间信息
188
+ * 获取房间信息
166
189
  *
167
190
  * @example
168
191
  * const roomEngine = new TUIRoomEngine();
169
- * const roomInfo = roomEngine.getRoomInfo();
192
+ * const roomInfo = await roomEngine.fetchRoomInfo();
170
193
  */
171
- getRoomInfo(): Promise<TUIRoomInfo>;
194
+ fetchRoomInfo(): Promise<TUIRoomInfo>;
172
195
  /**
173
- * 更新房间信息, 只有房间所有者有权限更新房间信息
196
+ * 更新房间的名字(仅群主或者管理员可以调用)
197
+ * @param {object} options 获取当前房间的名字
198
+ * @param {string} options.roomName 更新当前房间的名字
199
+ * @returns {Promise<void>}
200
+ * @example
201
+ * const roomEngine = new TUIRoomEngine();
202
+ * await roomEngine.createRoom({ roomId: '12345' });
203
+ * await roomEngine.updateRoomNameByAdmin({ roomName: '新的名字' });
174
204
  */
205
+ updateRoomNameByAdmin(options: {
206
+ roomName: string;
207
+ }): Promise<void>;
175
208
  /**
176
- * 主持人更新房间信息,注意仅房间所有者有权限更新房间信息
177
- * @param {object} roomInfo 主持人更新房间的信息
178
- * @param {string} roomInfo.name 更新房间的名字
179
- * @param {true} roomInfo.enableVideo 更新房间是否允许其他用户开启摄像头
180
- * @param {true} roomInfo.enableAudio 更新房间是否允许其他用户开启麦克风
181
- * @param {true} roomInfo.enableMessage 更新房间是否允许其他用户发送消息
182
- * @param {true} roomInfo.enableSeatControl 更新房间是否进行麦位控制<br/>
183
- * 注意:enableSeatControl 设置为 true 时为举手发言模式,enableSeatControl 设置为 false 时为自由发言模式。
184
- * @param {true} roomInfo.maxSeatCount 更新房间麦位最大值<br/>
185
- * - roomType 为 TUIRoomType.kGroup (教育及会议场景) 时,maxSeatCount 值不做限制;
186
- * - roomType 为 TUIRoomType.kOpen (直播场景) 时,maxSeatCount 最大限制为 16;
209
+ * 更新房间的发言模式(仅群主或者管理员可以调用)
210
+ * @param {object} options
211
+ * @param {TUISpeechMode} options.speechMode 发言类型
187
212
  * @returns {Promise<void>}
188
213
  *
189
214
  * @example
190
215
  * const roomEngine = new TUIRoomEngine();
191
- * await roomEngine.createRoom({ roomId: '12345' });
192
- * await roomEngine.updateRoomInfo({ name: '新的名字', enableVideo: true });
193
- */
194
- updateRoomInfo(options: {
195
- name?: string;
196
- enableVideo?: boolean;
197
- enableAudio?: boolean;
198
- enableMessage?: boolean;
199
- enableSeatControl?: boolean;
200
- maxSeatCount?: number;
216
+ * await roomEngine.updateRoomSpeechModeByAdmin({
217
+ * speechMode: TUISpeechMode.kSpeakAfterTakingSeat, // 更新为上麦后发言模式
218
+ * });
219
+ */
220
+ updateRoomSpeechModeByAdmin(options: {
221
+ speechMode: TUISpeechMode;
201
222
  }): Promise<void>;
202
223
  /**
203
224
  * 获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 100 个
@@ -210,19 +231,18 @@ declare class TUIRoomEngine {
210
231
  *
211
232
  * @example
212
233
  * const roomEngine = new TUIRoomEngine();
213
- * let result;
214
234
  * const userList = [];
235
+ * let result;
215
236
  * do {
216
- * result = await roomEngine.getUserList();
217
- * userList
237
+ * result = await globalProperties.roomEngine.getUserList();
238
+ * userList.push(...result.userInfoList);
218
239
  * } while (result.nextSequence !== 0)
219
240
  */
220
241
  getUserList(options?: {
221
242
  nextSequence?: Number;
222
- }): Promise<object>;
243
+ }): Promise<Array<TUIUserInfo>>;
223
244
  /**
224
245
  * 获取用户的详细信息
225
- *
226
246
  * @param {object} options 获取用户信息的参数
227
247
  * @param {string} options.userId 根据 userId 获取该用户的详细信息
228
248
  * @returns Promise<TUIUserInfo> userInfo
@@ -237,6 +257,20 @@ declare class TUIRoomEngine {
237
257
  getUserInfo(options: {
238
258
  userId: string;
239
259
  }): Promise<any>;
260
+ /**
261
+ * 设置房间麦位最大值
262
+ * @param {object} options
263
+ * @param {number} options.maxSeatCount 设置房间麦位最大值<br/>
264
+ * roomType 为 TUIRoomType.kConference (教育及会议场景) 时,maxSeatCount 值不做限制;
265
+ * roomType 为 TUIRoomType.kLivingRoom (直播场景) 时,maxSeatCount 最大限制为 16;
266
+ * @returns {Promise<void>}
267
+ * const roomEngine = new TUIRoomEngine();
268
+ * await roomEngine.createRoom({ roomId: '12345' });
269
+ * await roomEngine.setMaxSeatCount({ maxSeatCount: 16 })
270
+ */
271
+ setMaxSeatCount(options: {
272
+ maxSeatCount: number;
273
+ }): Promise<void>;
240
274
  private JSCallNativeRequestFunctionPromise;
241
275
  /**
242
276
  * 麦下用户可调用 takeSeat 成为麦上用户,仅麦上用户可发布本地音视频流。<br/>
@@ -249,7 +283,7 @@ declare class TUIRoomEngine {
249
283
  * @param {number} options.timeout 超时时间。若 timeout 设置为 0,则无超时时间
250
284
  * @param {Function} options.requestCallback 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
251
285
  * @returns {Promise<number>} <br/>
252
- * 当 roomIno.enableSeatControl 为 true,普通用户调用该接口时返回 requestId,普通用户可使用该 requestId 调用 cancelRequest 接口取消上麦请求。
286
+ * 当 roomIno.enableSeatControl 为 true,普通用户调用该接口时返回 request 结构体,普通用户可使用 request.requestId 调用 cancelRequest 接口取消上麦请求。
253
287
  *
254
288
  * @example
255
289
  * const roomEngine = new TUIRoomEngine();
@@ -262,7 +296,7 @@ declare class TUIRoomEngine {
262
296
  * });
263
297
  *
264
298
  * // 情景三:当 roomInfo.enableSeatControl 为 true 时,普通用户上麦
265
- * const requestId = await roomEngine.instance?.takeSeat({
299
+ * const request = await roomEngine.instance?.takeSeat({
266
300
  * seatIndex: -1,
267
301
  * timeout: 0,
268
302
  * requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
@@ -292,7 +326,7 @@ declare class TUIRoomEngine {
292
326
  seatIndex: number;
293
327
  timeout: number;
294
328
  requestCallback?: (callbackInfo: TUIRequestCallback) => void;
295
- }): Promise<number>;
329
+ }): Promise<TUIRequest>;
296
330
  /**
297
331
  * 离开麦位
298
332
  * @returns {Promise<void>}
@@ -313,9 +347,29 @@ declare class TUIRoomEngine {
313
347
  */
314
348
  getSeatList(): Promise<TUISeatInfo[]>;
315
349
  /**
316
- * 请求远端用户打开摄像头
350
+ * 锁定某个麦位状态
351
+ *
352
+ * @param {object} options 锁定某个麦位需要的参数
353
+ * @param {number} options.seatIndex 麦位索引
354
+ * @param {TUISeatLockParams} options.lockParams 设备
355
+ * @returns {Promise<void>}
356
+ *
357
+ * @example
358
+ * const roomEngine = new TUIRoomEngine();
359
+ * await roomEngine.lockSeatByAdmin({
360
+ * seatIndex: -1,
361
+ * lockParams: TUISeatLockParams.lockVideo
362
+ * });
363
+ */
364
+ lockSeatByAdmin(options: {
365
+ seatIndex: number;
366
+ lockParams: TUISeatLockParams;
367
+ }): Promise<any>;
368
+ /**
369
+ * 请求远端用户打开媒体设备
317
370
  * @param {object} options 请求远端用户打开摄像头的参数
318
371
  * @param {string} options.userId 用户 Id
372
+ * @param {TUIMediaDevice} options.device 请求的设备
319
373
  * @param {number} options.timeout 超时时间。若 timeout 设置为 0 ,则无超时时间
320
374
  * @param {Function} 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
321
375
  * @return {Promise<number>} <br/>
@@ -323,8 +377,9 @@ declare class TUIRoomEngine {
323
377
  *
324
378
  * @example
325
379
  * const roomEngine = new TUIRoomEngine();
326
- * const requestId = roomEngine.requestToOpenRemoteCamera({
380
+ * const requestId = roomEngine.openRemoteDeviceByAdmin({
327
381
  * userId: 'user_1234',
382
+ * device: TUIMediaDevice.kMicrophone //请求的设备为麦克风
328
383
  * timeout: 0,
329
384
  * requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
330
385
  * switch (requestCallbackType) {
@@ -349,41 +404,26 @@ declare class TUIRoomEngine {
349
404
  * },
350
405
  * });
351
406
  */
352
- requestToOpenRemoteCamera(options: {
407
+ openRemoteDeviceByAdmin(options: {
353
408
  userId: string;
409
+ device: TUIMediaDevice;
354
410
  timeout: number;
355
411
  requestCallback?: (callbackInfo: TUIRequestCallback) => void;
356
- }): Promise<number>;
412
+ }): Promise<TUIRequest>;
357
413
  /**
358
- * 关闭远端用户摄像头
359
- *
360
- * @param {object} options 关闭远端用户摄像头的参数
361
- * @param {string} options.userId 用户 Id
362
- * @returns {Promise<void>}
414
+ * 参会者向主持人申请打开设备
363
415
  *
364
- * @example
365
- * const roomEngine = new TUIRoomEngine();
366
- * await roomEngine.closeRemoteCamera({
367
- * userId: 'user_1234',
368
- * });
369
- */
370
- closeRemoteCamera(options: {
371
- userId: string;
372
- }): Promise<void>;
373
- /**
374
- * 请求远端用户打开麦克风
375
- *
376
- * @param {object} options 请求远端用户打开麦克风的参数
377
- * @param {string} options.userId 用户 Id
378
- * @param {number} options.timeout 超时时间,设置为 0 时,无超时时间
379
- * @param {Function} options.requestCallback 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
380
- * @returns {Promise<number>} <br/>
416
+ * @param {object} options 请求远端用户打开摄像头的参数
417
+ * @param {TUIMediaDevice} options.device 请求的设备
418
+ * @param {number} options.timeout 超时时间。若 timeout 设置为 0 ,则无超时时间
419
+ * @param {Function} 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
420
+ * @return {Promise<number>} <br/>
381
421
  * 该接口返回 requestId,用户可使用该 requestId 调用 cancelRequest 接口取消请求
382
422
  *
383
423
  * @example
384
424
  * const roomEngine = new TUIRoomEngine();
385
- * const requestId = await roomEngine.requestToOpenRemoteMicrophone({
386
- * userId: 'user_1234',
425
+ * const requestId = roomEngine.applyToAdminToOpenLocalDevice({
426
+ * device: TUIMediaDevice.kMicrophone, //请求打开麦克风
387
427
  * timeout: 0,
388
428
  * requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
389
429
  * switch (requestCallbackType) {
@@ -408,47 +448,34 @@ declare class TUIRoomEngine {
408
448
  * },
409
449
  * });
410
450
  */
411
- requestToOpenRemoteMicrophone(options: {
412
- userId: string;
451
+ applyToAdminToOpenLocalDevice(options: {
452
+ device: TUIMediaDevice;
413
453
  timeout: number;
414
454
  requestCallback?: (callbackInfo: TUIRequestCallback) => void;
415
- }): Promise<number>;
416
- /**
417
- * 关闭远端用户麦克风
418
- *
419
- * @param {object} options 关闭远端用户麦克风, 仅房间主持人和管理员可调用此方法
420
- * @param {string} options.userId 用户 Id
421
- * @returns {Promise<void>}
422
- *
423
- * @example
424
- * const roomEngine = new TUIRoomEngine();
425
- * await roomEngine.closeRemoteMicrophone({
426
- * userId: 'user_1234',
427
- * });
428
- */
429
- closeRemoteMicrophone(options: {
430
- userId: string;
431
- }): Promise<void>;
455
+ }): Promise<TUIRequest>;
432
456
  /**
433
- * 停止远端用户屏幕分享
457
+ * 关闭远端用户媒体设备
434
458
  *
435
- * @param {object} options 停止远端用户屏幕分享, 仅房间主持人和管理员可调用此方法
459
+ * @param {object} options 关闭远端用户摄像头的参数
436
460
  * @param {string} options.userId 用户 Id
461
+ * @param {TUIMediaDevice} options.device 用户 Id
437
462
  * @returns {Promise<void>}
438
463
  *
439
464
  * @example
440
465
  * const roomEngine = new TUIRoomEngine();
441
- * await roomEngine.stopRemoteScreenSharing({
466
+ * await roomEngine.closeRemoteDeviceByAdmin({
442
467
  * userId: 'user_1234',
468
+ * device: TUIMediaDevice.kMicrophone, //关闭掉麦克风
443
469
  * });
444
470
  */
445
- stopRemoteScreenSharing(options: {
471
+ closeRemoteDeviceByAdmin(options: {
446
472
  userId: string;
473
+ device: TUIMediaDevice;
447
474
  }): Promise<void>;
448
475
  /**
449
476
  * 邀请其他人上麦
450
477
  * @param {object} options 邀请其他人上麦的参数
451
- * @param {number} options.seatIndex 麦位 index
478
+ * @param {number} options.seatIndex 麦位 index, roomType 为 TUIRoomType.kConference 时无需关心,填 -1 即可
452
479
  * @param {string} options.userId 用户 Id
453
480
  * @param {number} options.timeout 超时时间,设置为 0 时,无超时时间
454
481
  * @param {Function} options.requestCallback 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
@@ -457,7 +484,7 @@ declare class TUIRoomEngine {
457
484
  *
458
485
  * @example
459
486
  * const roomEngine = new TUIRoomEngine();
460
- * const requestId = await roomEngine.requestRemoteUserOnSeat({
487
+ * const requestId = await roomEngine.takeUserOnSeatByAdmin({
461
488
  * seatIndex: 0,
462
489
  * userId: 'user_1234',
463
490
  * timeout: 0,
@@ -484,12 +511,12 @@ declare class TUIRoomEngine {
484
511
  * },
485
512
  * });
486
513
  */
487
- requestRemoteUserOnSeat(options: {
514
+ takeUserOnSeatByAdmin(options: {
488
515
  seatIndex: number;
489
516
  userId: string;
490
517
  timeout: number;
491
518
  requestCallback?: (callbackInfo: TUIRequestCallback) => void;
492
- }): Promise<number>;
519
+ }): Promise<TUIRequest>;
493
520
  /**
494
521
  * 要求其他人下麦
495
522
  * @param {object} options 要求其他人下麦的参数
@@ -499,34 +526,34 @@ declare class TUIRoomEngine {
499
526
  *
500
527
  * @example
501
528
  * const roomEngine = new TUIRoomEngine();
502
- * await roomEngine.kickRemoteUserOffSeat({
529
+ * await roomEngine.kickUserOffSeatByAdmin({
503
530
  * seatIndex: 0,
504
531
  * userId: 'user_1234',
505
532
  * });
506
533
  */
507
- kickRemoteUserOffSeat(options: {
534
+ kickUserOffSeatByAdmin(options: {
508
535
  seatIndex: number;
509
536
  userId: string;
510
537
  }): Promise<void>;
511
538
  /**
512
539
  * 取消已经发出的请求
513
540
  * @param {object} options 取消已经发出请求的参数
514
- * @param {number} options.requestId 请求 Id
541
+ * @param {string} options.requestId 请求 Id
515
542
  * @returns {Promise<void>}
516
543
  *
517
544
  * @example
518
545
  * const roomEngine = new TUIRoomEngine();
519
546
  * await roomEngine.cancelRequest({
520
- * requestId: 0, // 请使用实际 requestId
547
+ * requestId: '', // 请使用实际 requestId
521
548
  * });
522
549
  */
523
550
  cancelRequest(options: {
524
- requestId: number;
551
+ requestId: string;
525
552
  }): Promise<void>;
526
553
  /**
527
554
  * 回复远端用户的请求
528
555
  * @param {object} options 回复远端用户的请求的参数
529
- * @param {number} options.requestId 请求 Id
556
+ * @param {string} options.requestId 请求 Id
530
557
  * @param {boolean} options.agree 是否同意
531
558
  * @returns {Promise<void>}
532
559
  *
@@ -535,18 +562,18 @@ declare class TUIRoomEngine {
535
562
  *
536
563
  * // 同意远端的请求
537
564
  * await roomEngine.responseRemoteRequest({
538
- * requestId: 0, // 请使用实际 requestId
565
+ * requestId: '', // 请使用实际 requestId
539
566
  * agree: true,
540
567
  * });
541
568
  *
542
569
  * // 拒绝远端的请求
543
570
  * await roomEngine.responseRemoteRequest({
544
- * requestId: 0, // 请使用实际 requestId
571
+ * requestId: '', // 请使用实际 requestId
545
572
  * agree: false,
546
573
  * });
547
574
  */
548
575
  responseRemoteRequest(options: {
549
- requestId: number;
576
+ requestId: string;
550
577
  agree: boolean;
551
578
  }): Promise<any>;
552
579
  /**
@@ -560,31 +587,27 @@ declare class TUIRoomEngine {
560
587
  * const roomEngine = new TUIRoomEngine();
561
588
  *
562
589
  * // 设置本地摄像头流的播放区域为 id 是 'preview-camera' 的 div 元素
563
- * await roomEngine.setLocalRenderView({
590
+ * roomEngine.setLocalVideoView({
564
591
  * streamType: TUIVideoStreamType.kCameraStream,
565
592
  * view: 'preview-camera',
566
593
  * });
567
594
  *
568
595
  * // 设置本地屏幕分享流的播放区域为 id 是 'preview-screen' 的 div 元素
569
- * await roomEngine.setLocalRenderView({
596
+ * roomEngine.setLocalVideoView({
570
597
  * streamType: TUIVideoStreamType.kScreenStream,
571
598
  * view: 'preview-screen',
572
599
  * });
573
600
  */
574
- setLocalRenderView(options: {
601
+ setLocalVideoView(options: {
575
602
  streamType: TUIVideoStreamType;
576
603
  view: string;
577
- }): Promise<void>;
604
+ }): void;
578
605
  /**
579
606
  * 打开本地摄像头,开始视频流采集
607
+ * @param {object} options 设置本地流的参数
580
608
  * @returns {Promise<void>}
581
- *
582
609
  * @example
583
610
  * const roomEngine = new TUIRoomEngine();
584
- * await roomEngine.setLocalRenderView({
585
- * streamType: TUIVideoStreamType.kScreenStream,
586
- * view: 'preview-screen',
587
- * });
588
611
  * await roomEngine.openLocalCamera();
589
612
  */
590
613
  openLocalCamera(): Promise<void>;
@@ -598,7 +621,7 @@ declare class TUIRoomEngine {
598
621
  */
599
622
  closeLocalCamera(): Promise<void>;
600
623
  /**
601
- * 打开本地麦克风, 开始采集音频流
624
+ * 打开麦克风
602
625
  * @returns {Promise<void>}
603
626
  *
604
627
  * @example
@@ -616,46 +639,45 @@ declare class TUIRoomEngine {
616
639
  */
617
640
  closeLocalMicrophone(): Promise<void>;
618
641
  /**
619
- * 设置本地视频的参数
620
- * @param {object} options 设置本地视频的参数
621
- * @param {TUIVideoProfile} options.videoProfile
642
+ * 设置本地视频流的编码参数
643
+ * @param {object} options
644
+ * @param {TUIVideoQuality} options.quality
622
645
  *
623
- * - 清晰 TUIVideoProfile.kLowDefinition <br/>
624
- * - 标清 TUIVideoProfile.kStandardDefinition <br/>
625
- * - 高清 TUIVideoProfile.kHighDefinition <br/>
626
- * - 超清 TUIVideoProfile.kSuperDefinition <br/>
646
+ * - 360p TUIVideoQuality.kVideoQuality_360p <br/>
647
+ * - 540p TUIVideoQuality.kVideoQuality_540p <br/>
648
+ * - 720p TUIVideoQuality.kVideoQuality_720p <br/>
649
+ * - 1080p TUIVideoQuality.kVideoQuality_1080p <br/>
627
650
  *
628
651
  * @returns {Promise<void>}
629
652
  *
630
653
  * @example
631
654
  * const roomEngine = new TUIRoomEngine();
632
- * await roomEngine.setLocalVideoProfile({
633
- * videoProfile: TUIVideoProfile.kHighDefinition,
655
+ * await roomEngine.updateVideoQuality({
656
+ * quality: TUIVideoQuality.kVideoQuality_360p,
634
657
  * });
635
658
  */
636
- setLocalVideoProfile(options: {
637
- videoProfile: TUIVideoProfile;
659
+ updateVideoQuality(options: {
660
+ quality: TUIVideoQuality;
638
661
  }): Promise<void>;
639
662
  /**
640
663
  * 设置本地音频的参数<br/>
641
- * 注意:该方法需要在 openLocalMicrophone 之前进行设置,否则不会生效。
642
664
  * @param {object} options 设置本地音频的参数
643
- * @param {TUIAudioProfile} options.audioProfile
665
+ * @param {TUIAudioQuality} options.quality
644
666
  *
645
- * - TUIAudioProfile.kAudioProfileSpeech:语言模式;采样率:16k<br/>
646
- * - TUIAudioProfile.kAudioProfileDefault:标准模式(或者默认模式);采样率:48k<br/>
647
- * - TUIAudioProfile.kAudioProfileMusic:音乐模式;采样率:48k
667
+ * - TUIAudioQuality.kAudioProfileSpeech:语言模式;采样率:16k<br/>
668
+ * - TUIAudioQuality.kAudioProfileDefault:标准模式(或者默认模式);采样率:48k<br/>
669
+ * - TUIAudioQuality.kAudioProfileMusic:音乐模式;采样率:48k
648
670
  *
649
671
  * @returns {Promise<void>}
650
672
  *
651
673
  * @example
652
674
  * const roomEngine = new TUIRoomEngine();
653
- * await roomEngine.setLocalAudioProfile({
654
- * audioProfile: TUIAudioProfile.kAudioProfileSpeech,
675
+ * await roomEngine.updateAudioQuality({
676
+ * quality: TUIAudioQuality.kAudioProfileSpeech,
655
677
  * });
656
678
  */
657
- setLocalAudioProfile(options: {
658
- audioProfile: TUIAudioProfile;
679
+ updateAudioQuality(options: {
680
+ quality: TUIAudioQuality;
659
681
  }): Promise<void>;
660
682
  /**
661
683
  * 开始向远端推本地视频流
@@ -706,20 +728,20 @@ declare class TUIRoomEngine {
706
728
  * const roomEngine = new TUIRoomEngine();
707
729
  *
708
730
  * // 设置远端用户视频流在 id 为 'remote_preview_camera' 的区域播放
709
- * roomEngine.setRemoteRenderView({
731
+ * roomEngine.setRemoteVideoView()({
710
732
  * userId: 'user_1234',
711
733
  * streamType: TUIVideoStreamType.kCameraStream,
712
734
  * view: 'remote_preview_camera',
713
735
  * });
714
736
  *
715
737
  * // 设置远端用户屏幕分享流在 id 为 'remote_preview_screen' 的区域播放
716
- * roomEngine.setRemoteRenderView({
738
+ * roomEngine.setRemoteVideoView()({
717
739
  * userId: 'user_1234',
718
740
  * streamType: TUIVideoStreamType.kScreenStream,
719
741
  * view: 'remote_preview_screen',
720
742
  * });
721
743
  */
722
- setRemoteRenderView(options: {
744
+ setRemoteVideoView(options: {
723
745
  userId: string;
724
746
  streamType: TUIVideoStreamType;
725
747
  view: string;
@@ -767,11 +789,29 @@ declare class TUIRoomEngine {
767
789
  userId: string;
768
790
  streamType: TUIVideoStreamType;
769
791
  }): Promise<void>;
792
+ /**
793
+ * 停止远端用户的音频流
794
+ * @param {object} options 停止远端用户音频流的参数
795
+ * @param {string} options.userId 停止远端用户的userId
796
+ * @param {boolean} options.isMute 是否停止远端用户的音频
797
+ * @returns {Promise<void>}
798
+ *
799
+ * @example
800
+ * const roomEngine = new TUIRoomEngine();
801
+ * await roomEngine.muteRemoteAudioStream({
802
+ * userId: 'user_1234',
803
+ * isMute: true,
804
+ * });
805
+ */
806
+ muteRemoteAudioStream(options: {
807
+ userId: string;
808
+ isMute: boolean;
809
+ }): Promise<void>;
770
810
  /**
771
811
  * 改变用户的角色,仅主持人可调用该接口
772
812
  * @param {object} options 改变用户的角色,仅主持人可调用该接口的参数
773
813
  * @param {string} options.userId 用户 Id
774
- * @param {TUIRole} options.role 用户角色
814
+ * @param {TUIRole} options.userRole 用户角色
775
815
  * @returns {Promise<void>}
776
816
  *
777
817
  * @example
@@ -779,60 +819,85 @@ declare class TUIRoomEngine {
779
819
  * // 将房间移交给用户 user_1234
780
820
  * await roomEngine.changeUserRole({
781
821
  * userId: 'user_1234',
782
- * role: TUIRole.kRoomOwner,
822
+ * userRole: TUIRole.kRoomOwner,
823
+ * });
824
+ *
825
+ * // 将用户 user_1234 设置为房间管理员
826
+ * await roomEngine.changeUserRole({
827
+ * userId: 'user_1234',
828
+ * userRole: TUIRole.kAdministrator,
783
829
  * });
784
830
  */
785
831
  changeUserRole(options: {
786
832
  userId: string;
787
- role: TUIRole;
833
+ userRole: TUIRole;
788
834
  }): Promise<void>;
789
835
  /**
790
- * 禁止远端用户发送消息,仅主持人和管理员可调用该接口
836
+ * 将用户踢出房间,仅主持人和管理员可调用该接口
791
837
  * @param {object} options
792
- * @param {string} options.userId 远端用户 userId
793
- * @param {number} options.duration 禁止时长,单位秒。如设为 1000,则表示从现在起禁言该用户 1000 秒
838
+ * @param {string} options.userId 用户 Id
794
839
  * @returns {Promise<void>}
795
840
  *
796
841
  * @example
797
842
  * const roomEngine = new TUIRoomEngine();
798
- * await roomEngine.muteRemoteUser({
843
+ * await roomEngine.kickRemoteUserOutOfRoom({
799
844
  * userId: 'user_1234',
800
- * duration: 1000,
801
845
  * });
802
846
  */
803
- muteRemoteUser(options: {
847
+ kickRemoteUserOutOfRoom(options: {
804
848
  userId: string;
805
- duration: number;
806
849
  }): Promise<void>;
807
850
  /**
808
- * 取消禁止远端用户发送消息,仅主持人和管理员可调用该接口
809
- * @param {object} options
810
- * @param {string} options.userId 远端用户 userId
851
+ * 所有用户的设备是否允许被使用
852
+ * @param {object} options 所有用户的设备是否被允许使用所用到的参数
853
+ * @param {TUIMediaDevice} options.device 被禁用的设备
854
+ * @param {boolean} options.isDisable 是否被禁用
811
855
  * @returns {Promise<void>}
812
- *
813
856
  * @example
814
- * const roomEngine = new TUIRoomEngine();
815
- * await roomEngine.unmuteRemoteUser({
816
- * userId: 'user_1234',
817
- * });
857
+ * // Example 1: 禁止所有用户打开麦克风
858
+ * await roomEngine.disableDeviceForAllUserByAdmin({
859
+ * device: TUIMediaDevice.kMicrophone,
860
+ * isDisable: true,
861
+ * })
862
+ * // Example 2: 允许所有用户打开麦克风
863
+ * await roomEngine.disableDeviceForAllUserByAdmin({
864
+ * device: TUIMediaDevice.kMicrophone,
865
+ * isDisable: false,
866
+ * })
818
867
  */
819
- unmuteRemoteUser(options: {
820
- userId: string;
868
+ disableDeviceForAllUserByAdmin(options: {
869
+ device: TUIMediaDevice;
870
+ isDisable: boolean;
821
871
  }): Promise<void>;
822
872
  /**
823
- * 将用户踢出房间,仅主持人和管理员可调用该接口
824
- * @param {object} options
825
- * @param {string} options.userId 用户 Id
873
+ * 所有用户的是否允许发消息
874
+ * @param {object} options 所有用户是否被允许发消息所用到的参数
875
+ * @param {boolean} options.isDisable 是否被允许使用
826
876
  * @returns {Promise<void>}
827
- *
828
877
  * @example
829
- * const roomEngine = new TUIRoomEngine();
830
- * await roomEngine.kickOutRemoteUser({
878
+ * await roomEngine.disableSendingMessageForAllUser({
879
+ * isDisable: true,
880
+ * })
881
+
882
+ */
883
+ disableSendingMessageForAllUser(options: {
884
+ isDisable: boolean;
885
+ }): Promise<void>;
886
+ /**
887
+ * 特定用户是否被允许发消息
888
+ * @param {object} options 特定用户的是否被允许发消息所用到的参数
889
+ * @param {string} options.userId 特定用户的 userId
890
+ * @param {boolean} options.isDisable 是否被允许使用
891
+ * @returns {Promise<void>}
892
+ * @example
893
+ * await roomEngine.disableSendingMessageByAdmin({
831
894
  * userId: 'user_1234',
832
- * });
895
+ * isDisable: true,
896
+ * })
833
897
  */
834
- kickOutRemoteUser(options: {
898
+ disableSendingMessageByAdmin(options: {
835
899
  userId: string;
900
+ isDisable: boolean;
836
901
  }): Promise<void>;
837
902
  /**
838
903
  * 发送文本消息
@@ -969,7 +1034,7 @@ declare class TUIRoomEngine {
969
1034
  * console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId);
970
1035
  * }
971
1036
  */
972
- getCameraDevicesList(): Promise<any>;
1037
+ getCameraDevicesList(): Promise<TRTCDeviceInfo[]>;
973
1038
  /**
974
1039
  * 获取麦克风设备列表<br>
975
1040
  * @returns {Promise<TRTCDeviceInfo[]>} 麦克风列表