@tencentcloud/tuiroom-engine-js 3.2.1 → 3.2.2
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/dist/index.cjs.js +3 -0
- package/{index.d.ts → dist/index.d.ts} +2 -1
- package/dist/index.esm.js +3 -0
- package/dist/index.js +3 -0
- package/dist/src/error/error-info.d.ts +51 -0
- package/dist/src/error/tui-error.d.ts +10 -0
- package/dist/src/index.d.ts +1502 -0
- package/dist/src/modules/conferenceInvitationManager.d.ts +163 -0
- package/dist/src/modules/conferenceListManager.d.ts +244 -0
- package/dist/src/modules/deviceManager.d.ts +162 -0
- package/dist/src/modules/liveConnectionManager.d.ts +109 -0
- package/dist/src/modules/liveLayoutManager.d.ts +98 -0
- package/dist/src/modules/liveListManager.d.ts +120 -0
- package/dist/src/types.d.ts +1356 -0
- package/dist/src/utils/apiCallQueue.d.ts +18 -0
- package/dist/src/utils/common.d.ts +10 -0
- package/dist/src/utils/constant.d.ts +13 -0
- package/dist/src/utils/environment.d.ts +2 -0
- package/dist/src/utils/logger.d.ts +21 -0
- package/dist/src/utils/utils.d.ts +35 -0
- package/dist/src/utils/validate-config.d.ts +722 -0
- package/dist/src/utils/validate.d.ts +69 -0
- package/package.json +55 -17
- package/index.cjs.js +0 -1
- package/index.esm.js +0 -1
- package/index.js +0 -1
|
@@ -0,0 +1,1502 @@
|
|
|
1
|
+
import TencentCloudChat, { ChatSDK } from '@tencentcloud/chat';
|
|
2
|
+
import TRTCCloud, { TRTCDeviceInfo, TRTCScreenCaptureSourceInfo } from 'trtc-cloud-js-sdk';
|
|
3
|
+
import { TUIRoomInfo, TUIVideoStreamType, TUIVideoQuality, TUIAudioQuality, TUIRole, TUIRoomEvents, TUIRoomType, TUISeatInfo, TUIRequestCallback, TUIMediaDevice, TUISeatLockParams, TUILoginUserInfo, TUIUserInfo, TUIRequest, TUIVideoEncoderParams, TUIResolutionMode, TUISeatMode, TUIEnterRoomOptions } from './types';
|
|
4
|
+
import TUIRoomDeviceManager from './modules/deviceManager';
|
|
5
|
+
import TUIConferenceListManager from './modules/conferenceListManager';
|
|
6
|
+
import TUIConferenceInvitationManager from './modules/conferenceInvitationManager';
|
|
7
|
+
import TUILiveListManager from './modules/liveListManager';
|
|
8
|
+
import TUILiveLayoutManager from './modules/liveLayoutManager';
|
|
9
|
+
import TUILiveConnectionManager from './modules/liveConnectionManager';
|
|
10
|
+
export * from './types';
|
|
11
|
+
export { TUIRoomDeviceManager, TUIConferenceListManager, TUIConferenceInvitationManager, TUILiveListManager, TUILiveLayoutManager, };
|
|
12
|
+
export { TRTCDeviceType, TRTCDeviceState, TRTCDeviceInfo, TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode, TRTCVideoStreamType, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, Rect, TRTCVideoEncParam, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVolumeInfo, TRTCLogLevel, TRTCMediaSource, TRTCMediaSourceType, TRTCMediaMixingEncParam, TRTCMediaMixingEvent, } from 'trtc-cloud-js-sdk';
|
|
13
|
+
export { TRTCCloud, TencentCloudChat as TIM, TencentCloudChat };
|
|
14
|
+
/**
|
|
15
|
+
* TUIRoomEngine 提供了音视频房间的能力
|
|
16
|
+
*
|
|
17
|
+
* @class TUIRoomEngine
|
|
18
|
+
*/
|
|
19
|
+
declare class TUIRoomEngine {
|
|
20
|
+
static className: string;
|
|
21
|
+
private static isReady;
|
|
22
|
+
private roomEngineWASM;
|
|
23
|
+
private trtcCloud;
|
|
24
|
+
private deviceManager;
|
|
25
|
+
private deviceManagerWASM;
|
|
26
|
+
private conferenceListManager;
|
|
27
|
+
private conferenceInvitationManager;
|
|
28
|
+
private liveListManager;
|
|
29
|
+
private liveLayoutManager;
|
|
30
|
+
private liveConnectionManager;
|
|
31
|
+
private static userId;
|
|
32
|
+
private static sdkAppId;
|
|
33
|
+
private static Module;
|
|
34
|
+
private static shareInstance;
|
|
35
|
+
private logger;
|
|
36
|
+
private roomId;
|
|
37
|
+
private localVideoQuality;
|
|
38
|
+
private localAudioQuality;
|
|
39
|
+
private functionWrapperMap;
|
|
40
|
+
static setModule(Module: any): void;
|
|
41
|
+
static once(event: string, func: (...args: any[]) => void): void;
|
|
42
|
+
static getInstance(): TUIRoomEngine;
|
|
43
|
+
constructor(options?: {
|
|
44
|
+
isSharedInstance?: boolean;
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
* 调用 TUIRoomEngineWASM 的静态方法
|
|
49
|
+
*/
|
|
50
|
+
private static JSCallNativeFunctionPromise;
|
|
51
|
+
/**
|
|
52
|
+
* @private
|
|
53
|
+
* 调用 TUIRoomEngineWASM 的异步方法
|
|
54
|
+
* @param funcName
|
|
55
|
+
* @param args
|
|
56
|
+
*/
|
|
57
|
+
private JSCallNativeFunctionPromise;
|
|
58
|
+
private JSCallNativeRequestFunctionPromise;
|
|
59
|
+
/**
|
|
60
|
+
* @private
|
|
61
|
+
* 调用 TUIRoomEngineWASM 的 CallAPI 方法
|
|
62
|
+
* @param funcName
|
|
63
|
+
* @param jsonString
|
|
64
|
+
*/
|
|
65
|
+
private JSCallNativeCallAPIPromise;
|
|
66
|
+
/**
|
|
67
|
+
* 登录 TUIRoomEngine
|
|
68
|
+
*
|
|
69
|
+
* @param {object} options
|
|
70
|
+
* @param {number} options.sdkAppId sdkAppId <br>
|
|
71
|
+
* 在 [实时音视频控制台](https://console.cloud.tencent.com/trtc) 单击 **应用管理** > **创建应用** 创建新应用之后,即可在 **应用信息** 中获取 sdkAppId 信息。
|
|
72
|
+
* @param {string} options.userId 用户ID <br>
|
|
73
|
+
* 建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
|
|
74
|
+
* @param {string} options.userSig userSig 签名 <br>
|
|
75
|
+
* 计算 userSig 的方式请参考 [UserSig 相关](https://cloud.tencent.com/document/product/647/17275)。
|
|
76
|
+
* @returns {Promise<void>}
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* // 登录 TUIRoomEngine
|
|
80
|
+
* await TUIRoomEngine.login({
|
|
81
|
+
* sdkAppId: 0, // 填写您申请的 sdkAppId
|
|
82
|
+
* userId: '', // 填写您业务对应的 userId
|
|
83
|
+
* userSig: '', // 填写服务器或本地计算的 userSig
|
|
84
|
+
* })
|
|
85
|
+
*/
|
|
86
|
+
static login(options: {
|
|
87
|
+
sdkAppId: number;
|
|
88
|
+
userId: string;
|
|
89
|
+
userSig: string;
|
|
90
|
+
tim?: ChatSDK;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* 设置当前用户基本信息(用户名、用户头像)
|
|
94
|
+
*
|
|
95
|
+
* @param {object} options
|
|
96
|
+
* @param {string} options.userName 用户名,必填
|
|
97
|
+
* @param {string} options.avatarUrl 用户头像,必填
|
|
98
|
+
* @param {object=} options.customInfo 用户自定义资料, customInfo 字段自 v2.2.0 版本废弃
|
|
99
|
+
* App 管理员可以通过 [即时通信 IM 控制台 > 用户自定义字段](https://console.cloud.tencent.com/im/user-data) 新增自定义资料字段
|
|
100
|
+
* 用户自定义字段生效以后,用户可以调用 setSelfInfo 接口设置自定义资料
|
|
101
|
+
* @returns {Promise<void>}
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // 设置当前用户用户名及用户头像
|
|
105
|
+
* await TUIRoomEngine.setSelfInfo({
|
|
106
|
+
* userName: '', // 填写您的新用户名
|
|
107
|
+
* avatarUrl: '', // 填写您的新头像地址
|
|
108
|
+
* })
|
|
109
|
+
*
|
|
110
|
+
* // 设置当前用户用户名, 用户头像及用户自定义消息
|
|
111
|
+
* await TUIRoomEngine.setSelfInfo({
|
|
112
|
+
* userName: '', // 填写您的新用户名
|
|
113
|
+
* avatarUrl: '', // 填写您的新头像地址
|
|
114
|
+
* customInfo: { // 填写用户自定义消息
|
|
115
|
+
* Tag_Profile_Custom_Test: 'value1',
|
|
116
|
+
* Tag_Profile_Custom_profile: 'value2,
|
|
117
|
+
* },
|
|
118
|
+
* })
|
|
119
|
+
*/
|
|
120
|
+
static setSelfInfo(options: {
|
|
121
|
+
userName: string;
|
|
122
|
+
avatarUrl: string;
|
|
123
|
+
customInfo?: Record<string, any>;
|
|
124
|
+
}): Promise<void>;
|
|
125
|
+
/** 获取当前用户信息接口
|
|
126
|
+
* @returns {Promise<TUILoginUserInfo>} loginUserInfo
|
|
127
|
+
* 该接口返回用户信息
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* await TUIRoomEngine.getSelfInfo();
|
|
131
|
+
*/
|
|
132
|
+
static getSelfInfo(): Promise<TUILoginUserInfo>;
|
|
133
|
+
/**
|
|
134
|
+
* 登出 TUIRoomEngine, 登出 TUIRoomEngine 时将销毁所有 roomEngine 实例
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* await TUIRoomEngine.logout();
|
|
138
|
+
*/
|
|
139
|
+
static logout(): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* 主持人创建房间,调用 createRoom 的用户为房间的所有者。创建房间时可设置房间 Id,房间名称,房间类型,发言模式以及房间是否允许加入用户开启音视频,发送消息等功能。
|
|
142
|
+
*
|
|
143
|
+
* @param {object} options
|
|
144
|
+
* @param {string} options.roomId 房间 Id,必填, roomId 限制长度为64字节,且仅支持以下范围的字符集:<br>
|
|
145
|
+
* - 大小写英文字母(a-zA-Z)
|
|
146
|
+
* - 数字(0-9)
|
|
147
|
+
* - 空格 ! # $ % & ( ) + - : ; < = . > ? @ [ ] ^ _ { } | ~ ,
|
|
148
|
+
* @param {string=} [options.roomName=roomId] 房间名称,默认值为 roomId,传入的值不能为空字符串
|
|
149
|
+
* @param {TUIRoomType=} [options.roomType=TUIRoomType.kConference] 房间类型, 默认值为 TUIRoomType.kConference <br>
|
|
150
|
+
* 办公协同、医疗问诊、远程会议、教育场景,roomType 设置为 TUIRoomType.kConference
|
|
151
|
+
* 电商直播、语聊房场景,roomType 设置为 TUIRoomType.kLive
|
|
152
|
+
* @param {boolean=} [options.isSeatEnabled=false] 是否开启麦位控制,默认值为 false
|
|
153
|
+
* @param {TUISeatMode=} [options.seatMode=TUISeatMode.kFreeToTake] 上麦模式(开启麦位控制后生效),默认值为 TUISeatMode.kFreeToTake <br>
|
|
154
|
+
* 自由上麦模式,台下观众可以自由上麦,无需申请,seatMode 设置为 TUISeatMode.kFreeToTake
|
|
155
|
+
* 申请上麦模式,台下观众上麦需要房主或者管理员同意后才能上麦,seatMode 设置为 TUISeatMode.kApplyToTake
|
|
156
|
+
* @param {boolean=} [options.isMicrophoneDisableForAllUser=false] 是否开启全员禁麦,默认不开启全员禁麦(创建房间可选参数)
|
|
157
|
+
* @param {boolean=} [options.isScreenShareDisableForAllUser=false] 是否开启禁止屏幕分享,默认不开启禁止屏幕分享权限(该属性自 v2.2.0 版本 以后支持,创建房间可选参数)
|
|
158
|
+
* @param {boolean=} [options.isCameraDisableForAllUser=false] 是否开启全员禁画,默认不开启全员禁画(创建房间可选参数)
|
|
159
|
+
* @param {boolean=} [options.isMessageDisableForAllUser=false] 是否允许成员发送消息,默认不禁止(创建房间可选参数)
|
|
160
|
+
* @param {number=} options.maxSeatCount 最大麦位数量 (创建房间可选参数)
|
|
161
|
+
* @param {string=} [options.password=''] 房间密码,(该属性自 v2.5.0 版本支持) <br>
|
|
162
|
+
* @param {boolean=} [options.keepOwnerOnSeat=false] 是否保持房主座位,默认不保持房主座位(该属性自 v3.1.0 版本支持)
|
|
163
|
+
* roomType 为 TUIRoomType.kConference (教育及会议场景) 时,maxSeatCount 值不做限制;
|
|
164
|
+
* roomType 为 TUIRoomType.kLive (直播场景) 时,maxSeatCount 最大限制为 16;
|
|
165
|
+
* @returns {Promise<void>}
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* const roomEngine = new TUIRoomEngine();
|
|
169
|
+
* await roomEngine.createRoom({
|
|
170
|
+
* roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型
|
|
171
|
+
* roomName: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节
|
|
172
|
+
* roomType: TUIRoomType.kConference, // 设置房间类型为 TUIRoomType.kConference 类型
|
|
173
|
+
* isSeatEnabled: false, // 不开启麦位控制
|
|
174
|
+
* password: '1234', // 填入您的房间密码,不填入则不设置房间密码
|
|
175
|
+
* });
|
|
176
|
+
*/
|
|
177
|
+
createRoom(options: {
|
|
178
|
+
roomId: string;
|
|
179
|
+
roomName?: string;
|
|
180
|
+
roomType?: TUIRoomType;
|
|
181
|
+
isSeatEnabled?: boolean;
|
|
182
|
+
seatMode?: TUISeatMode;
|
|
183
|
+
isMicrophoneDisableForAllUser?: boolean;
|
|
184
|
+
isScreenShareDisableForAllUser?: boolean;
|
|
185
|
+
isCameraDisableForAllUser?: boolean;
|
|
186
|
+
isMessageDisableForAllUser?: boolean;
|
|
187
|
+
maxSeatCount?: number;
|
|
188
|
+
password?: string;
|
|
189
|
+
keepOwnerOnSeat?: boolean;
|
|
190
|
+
}): Promise<void>;
|
|
191
|
+
/**
|
|
192
|
+
* 进入房间接口
|
|
193
|
+
* @param {object} options
|
|
194
|
+
* @param {string} options.roomId 房间号,字符串类型
|
|
195
|
+
* @param {TUIRoomType} options.roomType 房间类型, 默认值为 TUIRoomType.kConference (自 v2.3.0 支持)
|
|
196
|
+
* @param {TUIEnterRoomOptions} options.options 进入房间的可选参数 (自 v2.5.0 支持)
|
|
197
|
+
* @returns {Promise<TUIRoomInfo>} roomInfo
|
|
198
|
+
* 该接口返回当前房间信息
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* const roomEngine = new TUIRoomEngine();
|
|
202
|
+
* const roomDetailInfo = await roomEngine.enterRoom({
|
|
203
|
+
* roomId: '12345',
|
|
204
|
+
* roomType: TUIRoomType.kConference, // 设置房间类型为 TUIRoomType.kConference 类型
|
|
205
|
+
* options: {
|
|
206
|
+
* password: '1234',
|
|
207
|
+
* }
|
|
208
|
+
* });
|
|
209
|
+
*/
|
|
210
|
+
enterRoom(options: {
|
|
211
|
+
roomId: string;
|
|
212
|
+
roomType: TUIRoomType;
|
|
213
|
+
options?: TUIEnterRoomOptions;
|
|
214
|
+
}): Promise<TUIRoomInfo>;
|
|
215
|
+
/**
|
|
216
|
+
* 解散房间接口,解散房间必须由房间所有者发起,解散房间之后房间不可进入
|
|
217
|
+
* @returns {Promise<void>}
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* const roomEngine = new TUIRoomEngine();
|
|
221
|
+
* await roomEngine.destroyRoom();
|
|
222
|
+
*/
|
|
223
|
+
destroyRoom(): Promise<void>;
|
|
224
|
+
/**
|
|
225
|
+
* 离开房间接口,用户在执行 enterRoom 之后可通过 exitRoom 离开房间
|
|
226
|
+
* @returns {Promise<void>}
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* const roomEngine = new TUIRoomEngine();
|
|
230
|
+
* await roomEngine.exitRoom();
|
|
231
|
+
*/
|
|
232
|
+
exitRoom(): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* 获取房间信息
|
|
235
|
+
* @param {object} options
|
|
236
|
+
* @param {string} options.roomId 要获取信息的房间Id。
|
|
237
|
+
* @param {TUIRoomType} options.roomType 要获取信息的房间类型。
|
|
238
|
+
* @returns {Promise<TUIRoomInfo>} roomInfo
|
|
239
|
+
* @example
|
|
240
|
+
* const roomEngine = new TUIRoomEngine();
|
|
241
|
+
* const roomInfo = await roomEngine.fetchRoomInfo({
|
|
242
|
+
* roomId: '12345',
|
|
243
|
+
* roomType: TUIRoomType.kConference,
|
|
244
|
+
* });
|
|
245
|
+
*/
|
|
246
|
+
fetchRoomInfo(options?: {
|
|
247
|
+
roomId: string;
|
|
248
|
+
roomType: TUIRoomType;
|
|
249
|
+
}): Promise<TUIRoomInfo>;
|
|
250
|
+
/**
|
|
251
|
+
* 更新房间的名字(仅群主或者管理员可以调用)
|
|
252
|
+
* @param {object} options
|
|
253
|
+
* @param {string} options.roomName 更新当前房间的名字
|
|
254
|
+
* @returns {Promise<void>}
|
|
255
|
+
* @example
|
|
256
|
+
* const roomEngine = new TUIRoomEngine();
|
|
257
|
+
* await roomEngine.createRoom({ roomId: '12345' });
|
|
258
|
+
* await roomEngine.updateRoomNameByAdmin({ roomName: '新的名字' });
|
|
259
|
+
*/
|
|
260
|
+
updateRoomNameByAdmin(options: {
|
|
261
|
+
roomName: string;
|
|
262
|
+
}): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* 更新房间上麦模式(仅群主或者管理员可以调用)
|
|
265
|
+
* 房间上麦模式更新后,roomEngine 会通过 TUIRoomEvents.onRoomSeatModeChanged 回调通知房间内用户
|
|
266
|
+
* @since v2.0.0
|
|
267
|
+
* @param {object} options
|
|
268
|
+
* @param {TUISeatMode} options.seatMode 发言类型
|
|
269
|
+
* @returns {Promise<void>}
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* const roomEngine = new TUIRoomEngine();
|
|
273
|
+
* await roomEngine.updateRoomSeatModeByAdmin({
|
|
274
|
+
* seatMode: TUISeatMode.kApplyToTake, // 更新为申请上麦模式
|
|
275
|
+
* });
|
|
276
|
+
*/
|
|
277
|
+
updateRoomSeatModeByAdmin(options: {
|
|
278
|
+
seatMode: TUISeatMode;
|
|
279
|
+
}): Promise<void>;
|
|
280
|
+
/**
|
|
281
|
+
* 更新房间密码(仅群主或者管理员可以调用)
|
|
282
|
+
*
|
|
283
|
+
* @since v2.5.0
|
|
284
|
+
* @param {object} options
|
|
285
|
+
* @param {string} options.password 房间密码,传入空字符串则代表关闭房间密码
|
|
286
|
+
* @returns {Promise<void>}
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* const roomEngine = new TUIRoomEngine();
|
|
290
|
+
* await roomEngine.updateRoomPasswordByAdmin({
|
|
291
|
+
* password: '1234', // 更新密码为 1234
|
|
292
|
+
* });
|
|
293
|
+
*/
|
|
294
|
+
updateRoomPasswordByAdmin(options: {
|
|
295
|
+
password: string;
|
|
296
|
+
}): Promise<void>;
|
|
297
|
+
/**
|
|
298
|
+
* 获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 50 个
|
|
299
|
+
*
|
|
300
|
+
* @param {object=} options 获取用户列表的参数
|
|
301
|
+
* @param {number=} options.nextSequence 偏移量,默认从 0 开始拉取用户<br/>
|
|
302
|
+
* @return {Promise<object>} result
|
|
303
|
+
* result.nextSequence 下一次拉取群组用户的偏移量,如果 nextSequence 为 0 则代表 userList 全部拉下来了
|
|
304
|
+
* result.userInfoList 本次拉取的 userList
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* const roomEngine = new TUIRoomEngine();
|
|
308
|
+
* const userList = [];
|
|
309
|
+
* let result;
|
|
310
|
+
* let nextSequence = 0;
|
|
311
|
+
* do {
|
|
312
|
+
* result = await roomEngine.getUserList({ nextSequence });
|
|
313
|
+
* userList.push(...result.userInfoList);
|
|
314
|
+
* nextSequence = result.nextSequence;
|
|
315
|
+
* } while (nextSequence !== 0)
|
|
316
|
+
*/
|
|
317
|
+
getUserList(options?: {
|
|
318
|
+
nextSequence?: number;
|
|
319
|
+
}): Promise<{
|
|
320
|
+
nextSequence: number;
|
|
321
|
+
userInfoList: Array<TUIUserInfo>;
|
|
322
|
+
}>;
|
|
323
|
+
/**
|
|
324
|
+
* 获取用户的详细信息
|
|
325
|
+
* @param {object} options 获取用户信息的参数
|
|
326
|
+
* @param {string} options.userId 根据 userId 获取该用户的详细信息
|
|
327
|
+
* @returns Promise<TUIUserInfo> userInfo
|
|
328
|
+
* 该接口返回指定用户的用户信息
|
|
329
|
+
*
|
|
330
|
+
* @example
|
|
331
|
+
* const roomEngine = new TUIRoomEngine();
|
|
332
|
+
* const userInfo = await roomEngine.getUserInfo({
|
|
333
|
+
* userId: 'user_12345',
|
|
334
|
+
* });
|
|
335
|
+
*/
|
|
336
|
+
getUserInfo(options: {
|
|
337
|
+
userId: string;
|
|
338
|
+
}): Promise<any>;
|
|
339
|
+
/**
|
|
340
|
+
* 设置用户的自定义信息,该接口需要在进房后调用;
|
|
341
|
+
* 主持人可以设置自己,管理员及普通用户的自定义信息;
|
|
342
|
+
* 管理员可以设置自己及普通用户的自定义信息;
|
|
343
|
+
* 普通用户仅可以设置自己的自定义信息;
|
|
344
|
+
* @param {object} options 设置用户的自定义信息
|
|
345
|
+
* @param {string} options.userId 用户 userId
|
|
346
|
+
* @param {object} options.customInfo 用户自定义信息
|
|
347
|
+
*
|
|
348
|
+
* @example
|
|
349
|
+
* const roomEngine = new TUIRoomEngine();
|
|
350
|
+
* await roomEngine.setCustomInfoForUser({
|
|
351
|
+
* userId: 'user_12345',
|
|
352
|
+
* customInfo: {
|
|
353
|
+
* 'key1': 'value1',
|
|
354
|
+
* 'key2': 'value2',
|
|
355
|
+
* }
|
|
356
|
+
* });
|
|
357
|
+
*/
|
|
358
|
+
setCustomInfoForUser(options: {
|
|
359
|
+
userId: string;
|
|
360
|
+
customInfo: Record<string, string>;
|
|
361
|
+
}): Promise<void>;
|
|
362
|
+
/**
|
|
363
|
+
* 设置房间的自定义信息,该接口仅主播进房后调用
|
|
364
|
+
* @since v3.1.0
|
|
365
|
+
* @param {object} options 设置房间自定义信息
|
|
366
|
+
* @param {string} options.metadata 自定义信息
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* const roomEngine = new TUIRoomEngine();
|
|
370
|
+
* await roomEngine.setRoomMetadataByAdmin({
|
|
371
|
+
* metadata: JSON.stringify({key1: "value1", key2: "value2"}), // value 只能是 string
|
|
372
|
+
* });
|
|
373
|
+
*/
|
|
374
|
+
setRoomMetadataByAdmin(options: {
|
|
375
|
+
metadata: string;
|
|
376
|
+
}): Promise<void>;
|
|
377
|
+
/**
|
|
378
|
+
* 获取房间的自定义信息
|
|
379
|
+
* @since v3.1.0
|
|
380
|
+
* @param {object} options 获取房间自定义信息
|
|
381
|
+
* @param {Array<string>} options.keys 自定义信息的 key 数组
|
|
382
|
+
*
|
|
383
|
+
* @example
|
|
384
|
+
* const roomEngine = new TUIRoomEngine();
|
|
385
|
+
* const result = await roomEngine.getRoomMetadata({
|
|
386
|
+
* keys: ["key1", "key2"] // key 只能是 string
|
|
387
|
+
* });
|
|
388
|
+
*/
|
|
389
|
+
getRoomMetadata(options: {
|
|
390
|
+
keys: Array<string>;
|
|
391
|
+
}): Promise<any>;
|
|
392
|
+
/**
|
|
393
|
+
* 设置本地视频流的渲染位置
|
|
394
|
+
* @param {object} options 设置本地视频流的渲染位置的参数
|
|
395
|
+
* @param {string | Array<string> | null} options.view 本地视频流的渲染位置,如果传入 null 则不预览摄像头画面,但不影响摄像头采集,会正常推流。
|
|
396
|
+
* @returns {Promise<void>}
|
|
397
|
+
* @desc 自 v1.6.1 版本起,setLocalVideoView 不再需要传入 streamType 参数
|
|
398
|
+
*
|
|
399
|
+
* @example
|
|
400
|
+
* const roomEngine = new TUIRoomEngine();
|
|
401
|
+
*
|
|
402
|
+
* // 设置本地摄像头流的播放区域为 id 是 'preview-camera' 的 div 元素
|
|
403
|
+
* roomEngine.setLocalVideoView({
|
|
404
|
+
* view: 'preview-camera',
|
|
405
|
+
* });
|
|
406
|
+
*/
|
|
407
|
+
setLocalVideoView(options: {
|
|
408
|
+
view: string | Array<string> | null;
|
|
409
|
+
streamType?: TUIVideoStreamType;
|
|
410
|
+
}): void;
|
|
411
|
+
/**
|
|
412
|
+
* 打开本地摄像头,开始视频流采集
|
|
413
|
+
* @param {object} options 设置本地流的参数
|
|
414
|
+
* @returns {Promise<void>}
|
|
415
|
+
* @example
|
|
416
|
+
* const roomEngine = new TUIRoomEngine();
|
|
417
|
+
*
|
|
418
|
+
* // 桌面端打开摄像头
|
|
419
|
+
* await roomEngine.openLocalCamera();
|
|
420
|
+
*
|
|
421
|
+
* // 移动端使用前置摄像头打开视频预览
|
|
422
|
+
* await roomEngine.openLocalCamera({ isFrontCamera: true });
|
|
423
|
+
* // 移动端使用后置摄像头打开视频预览
|
|
424
|
+
* await roomEngine.openLocalCamera({ isFrontCamera: false });
|
|
425
|
+
*/
|
|
426
|
+
openLocalCamera(options?: {
|
|
427
|
+
isFrontCamera?: boolean;
|
|
428
|
+
}): Promise<void>;
|
|
429
|
+
/**
|
|
430
|
+
* 关闭本地摄像头
|
|
431
|
+
* @returns {Promise<void>}
|
|
432
|
+
*
|
|
433
|
+
* @example
|
|
434
|
+
* const roomEngine = new TUIRoomEngine();
|
|
435
|
+
* await roomEngine.closeLocalCamera();
|
|
436
|
+
*/
|
|
437
|
+
closeLocalCamera(): Promise<void>;
|
|
438
|
+
/**
|
|
439
|
+
* 打开麦克风
|
|
440
|
+
* @returns {Promise<void>}
|
|
441
|
+
*
|
|
442
|
+
* @example
|
|
443
|
+
* const roomEngine = new TUIRoomEngine();
|
|
444
|
+
* await roomEngine.openLocalMicrophone();
|
|
445
|
+
*/
|
|
446
|
+
openLocalMicrophone(): Promise<void>;
|
|
447
|
+
/**
|
|
448
|
+
* 关闭本地麦克风, 停止采集音频流
|
|
449
|
+
* @returns {Promise<void>}
|
|
450
|
+
*
|
|
451
|
+
* @example
|
|
452
|
+
* const roomEngine = new TUIRoomEngine();
|
|
453
|
+
* await roomEngine.closeLocalMicrophone();
|
|
454
|
+
*/
|
|
455
|
+
closeLocalMicrophone(): Promise<void>;
|
|
456
|
+
/**
|
|
457
|
+
* 设置本地视频流的编码参数
|
|
458
|
+
* @param {object} options
|
|
459
|
+
* @param {TUIVideoQuality} options.quality
|
|
460
|
+
*
|
|
461
|
+
* - 360p TUIVideoQuality.kVideoQuality_360p <br/>
|
|
462
|
+
* - 540p TUIVideoQuality.kVideoQuality_540p <br/>
|
|
463
|
+
* - 720p TUIVideoQuality.kVideoQuality_720p <br/>
|
|
464
|
+
* - 1080p TUIVideoQuality.kVideoQuality_1080p <br/>
|
|
465
|
+
*
|
|
466
|
+
* @returns {Promise<void>}
|
|
467
|
+
*
|
|
468
|
+
* @example
|
|
469
|
+
* const roomEngine = new TUIRoomEngine();
|
|
470
|
+
* await roomEngine.updateVideoQuality({
|
|
471
|
+
* quality: TUIVideoQuality.kVideoQuality_360p,
|
|
472
|
+
* });
|
|
473
|
+
*/
|
|
474
|
+
updateVideoQuality(options: {
|
|
475
|
+
quality: TUIVideoQuality;
|
|
476
|
+
}): Promise<void>;
|
|
477
|
+
/**
|
|
478
|
+
* 设置本地视频流的分辨率模式
|
|
479
|
+
* @param {object} options
|
|
480
|
+
* @param {TUIVideoStreamType} options.streamType
|
|
481
|
+
* @param {TUIResolutionMode} options.resolutionMode
|
|
482
|
+
*
|
|
483
|
+
* @returns {Promise<void>}
|
|
484
|
+
*
|
|
485
|
+
* @example
|
|
486
|
+
* const roomEngine = new TUIRoomEngine();
|
|
487
|
+
* await roomEngine.setVideoResolutionMode({
|
|
488
|
+
* type: TUIVideoStreamType.kCameraStream,
|
|
489
|
+
* resolutionMode: TUIResolutionMode.kResolutionMode_Landscape,
|
|
490
|
+
* });
|
|
491
|
+
*/
|
|
492
|
+
setVideoResolutionMode(options: {
|
|
493
|
+
streamType: TUIVideoStreamType;
|
|
494
|
+
resolutionMode: TUIResolutionMode;
|
|
495
|
+
}): Promise<void>;
|
|
496
|
+
/**
|
|
497
|
+
* 设置本地视频流的详细编码参数
|
|
498
|
+
* @param {object} options
|
|
499
|
+
* @param {TUIVideoStreamType} options.streamType
|
|
500
|
+
* @param {TUIVideoEncoderParams} options.encoderParams
|
|
501
|
+
* @returns {Promise<void>}
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* const roomEngine = new TUIRoomEngine();
|
|
505
|
+
* await roomEngine.updateVideoQualityEx({
|
|
506
|
+
* streamType: TUIVideoStreamType.kCameraStream,
|
|
507
|
+
* encoderParams: {
|
|
508
|
+
* videoResolution: TUIVideoQuality.kVideoQuality_720p,
|
|
509
|
+
* fps: 15,
|
|
510
|
+
* bitrate: 2000,
|
|
511
|
+
* resMode: TUIResolutionMode.kResolutionMode_Landscape,
|
|
512
|
+
* }
|
|
513
|
+
* });
|
|
514
|
+
*/
|
|
515
|
+
updateVideoQualityEx(options: {
|
|
516
|
+
streamType: TUIVideoStreamType;
|
|
517
|
+
encoderParams: TUIVideoEncoderParams;
|
|
518
|
+
}): Promise<void>;
|
|
519
|
+
/**
|
|
520
|
+
* 设置本地音频的参数<br/>
|
|
521
|
+
* @param {object} options 设置本地音频的参数
|
|
522
|
+
* @param {TUIAudioQuality} options.quality
|
|
523
|
+
*
|
|
524
|
+
* - TUIAudioQuality.kAudioProfileSpeech:语言模式;采样率:16k<br/>
|
|
525
|
+
* - TUIAudioQuality.kAudioProfileDefault:标准模式(或者默认模式);采样率:48k<br/>
|
|
526
|
+
* - TUIAudioQuality.kAudioProfileMusic:音乐模式;采样率:48k
|
|
527
|
+
*
|
|
528
|
+
* @returns {Promise<void>}
|
|
529
|
+
*
|
|
530
|
+
* @example
|
|
531
|
+
* const roomEngine = new TUIRoomEngine();
|
|
532
|
+
* await roomEngine.updateAudioQuality({
|
|
533
|
+
* quality: TUIAudioQuality.kAudioProfileSpeech,
|
|
534
|
+
* });
|
|
535
|
+
*/
|
|
536
|
+
updateAudioQuality(options: {
|
|
537
|
+
quality: TUIAudioQuality;
|
|
538
|
+
}): Promise<void>;
|
|
539
|
+
/**
|
|
540
|
+
* 开始向远端推本地视频流
|
|
541
|
+
* @returns {Promise<void>}
|
|
542
|
+
*
|
|
543
|
+
* @example
|
|
544
|
+
* const roomEngine = new TUIRoomEngine();
|
|
545
|
+
* await roomEngine.startPushLocalVideo();
|
|
546
|
+
*/
|
|
547
|
+
startPushLocalVideo(): Promise<void>;
|
|
548
|
+
/**
|
|
549
|
+
* 停止向远端推本地视频流
|
|
550
|
+
* @returns {Promise<void>}
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
* const roomEngine = new TUIRoomEngine();
|
|
554
|
+
* await roomEngine.startPushLocalVideo();
|
|
555
|
+
*/
|
|
556
|
+
stopPushLocalVideo(): Promise<void>;
|
|
557
|
+
/**
|
|
558
|
+
* 开始向远端推本地音频流
|
|
559
|
+
* @returns {Promise<void>}
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* const roomEngine = new TUIRoomEngine();
|
|
563
|
+
* await roomEngine.muteLocalAudio();
|
|
564
|
+
* @since 1.5.1
|
|
565
|
+
*/
|
|
566
|
+
muteLocalAudio(): Promise<void>;
|
|
567
|
+
/**
|
|
568
|
+
* 停止向远端推本地音频流
|
|
569
|
+
* @returns {Promise<void>}
|
|
570
|
+
*
|
|
571
|
+
* @example
|
|
572
|
+
* const roomEngine = new TUIRoomEngine();
|
|
573
|
+
* await roomEngine.unmuteLocalAudio();
|
|
574
|
+
* @since 1.5.1
|
|
575
|
+
*/
|
|
576
|
+
unmuteLocalAudio(): Promise<void>;
|
|
577
|
+
/**
|
|
578
|
+
* 设置远端流渲染的区域
|
|
579
|
+
*
|
|
580
|
+
* @param {object} options 设设置远端流渲染区域的参数
|
|
581
|
+
* @param {string} options.userId 用户 Id
|
|
582
|
+
* @param {TUIVideoStreamType} options.streamType 用户流类型
|
|
583
|
+
* @param {string | Array<string>} options.view 播放远端用户流的 div 元素的 id
|
|
584
|
+
* @returns {Promise<void>}
|
|
585
|
+
*
|
|
586
|
+
* @example
|
|
587
|
+
* const roomEngine = new TUIRoomEngine();
|
|
588
|
+
*
|
|
589
|
+
* // 设置远端用户视频流在 id 为 'remote_preview_camera' 的区域播放
|
|
590
|
+
* roomEngine.setRemoteVideoView()({
|
|
591
|
+
* userId: 'user_1234',
|
|
592
|
+
* streamType: TUIVideoStreamType.kCameraStream,
|
|
593
|
+
* view: 'remote_preview_camera',
|
|
594
|
+
* });
|
|
595
|
+
*
|
|
596
|
+
* // 设置远端用户屏幕分享流在 id 为 'remote_preview_screen' 的区域播放
|
|
597
|
+
* roomEngine.setRemoteVideoView()({
|
|
598
|
+
* userId: 'user_1234',
|
|
599
|
+
* streamType: TUIVideoStreamType.kScreenStream,
|
|
600
|
+
* view: 'remote_preview_screen',
|
|
601
|
+
* });
|
|
602
|
+
*/
|
|
603
|
+
setRemoteVideoView(options: {
|
|
604
|
+
userId: string;
|
|
605
|
+
streamType: TUIVideoStreamType;
|
|
606
|
+
view: string | Array<string>;
|
|
607
|
+
}): Promise<void>;
|
|
608
|
+
/**
|
|
609
|
+
* 开始播放远端用户视频流
|
|
610
|
+
*
|
|
611
|
+
* @param {object} options 开始播放远端用户视频流的参数
|
|
612
|
+
* @param {string} options.userId 用户 Id
|
|
613
|
+
* @param {TUIVideoStreamType} options.streamType 用户流类型
|
|
614
|
+
* @returns {Promise<void>}
|
|
615
|
+
*
|
|
616
|
+
* @example
|
|
617
|
+
* const roomEngine = new TUIRoomEngine();
|
|
618
|
+
* await roomEngine.startPlayRemoteVideo({
|
|
619
|
+
* userId: 'user_1234',
|
|
620
|
+
* streamType: TUIVideoStreamType.kCameraStream,
|
|
621
|
+
* });
|
|
622
|
+
*/
|
|
623
|
+
startPlayRemoteVideo(options: {
|
|
624
|
+
userId: string;
|
|
625
|
+
streamType: TUIVideoStreamType;
|
|
626
|
+
}): Promise<void>;
|
|
627
|
+
/**
|
|
628
|
+
* 停止播放远端用户视频流
|
|
629
|
+
*
|
|
630
|
+
* @param {object} options 停止播放远端用户视频流的参数
|
|
631
|
+
* @param {string} options.userId 用户 Id
|
|
632
|
+
* @param {TUIVideoStreamType} options.streamType 用户流类型<br/>
|
|
633
|
+
*
|
|
634
|
+
* - TUIVideoStreamType.kCameraStream 视频流<br/>
|
|
635
|
+
* - TUIVideoStreamType.kScreenStream 屏幕分享流<br/>
|
|
636
|
+
* - TUIVideoStreamType.kCameraStreamLow 低清视频流
|
|
637
|
+
*
|
|
638
|
+
* @returns {Promise<void>}
|
|
639
|
+
*
|
|
640
|
+
* @example
|
|
641
|
+
* const roomEngine = new TUIRoomEngine();
|
|
642
|
+
* await roomEngine.stopPlayRemoteVideo({
|
|
643
|
+
* userId: 'user_1234',
|
|
644
|
+
* streamType: TUIVideoStreamType.kCameraStream,
|
|
645
|
+
* });
|
|
646
|
+
*/
|
|
647
|
+
stopPlayRemoteVideo(options: {
|
|
648
|
+
userId: string;
|
|
649
|
+
streamType: TUIVideoStreamType;
|
|
650
|
+
}): Promise<void>;
|
|
651
|
+
/**
|
|
652
|
+
* 停止远端用户的音频流
|
|
653
|
+
* @param {object} options 停止远端用户音频流的参数
|
|
654
|
+
* @param {string} options.userId 停止远端用户的userId
|
|
655
|
+
* @param {boolean} options.isMute 是否停止远端用户的音频
|
|
656
|
+
* @returns {Promise<void>}
|
|
657
|
+
*
|
|
658
|
+
* @example
|
|
659
|
+
* const roomEngine = new TUIRoomEngine();
|
|
660
|
+
* await roomEngine.muteRemoteAudioStream({
|
|
661
|
+
* userId: 'user_1234',
|
|
662
|
+
* isMute: true,
|
|
663
|
+
* });
|
|
664
|
+
*/
|
|
665
|
+
muteRemoteAudioStream(options: {
|
|
666
|
+
userId: string;
|
|
667
|
+
isMute: boolean;
|
|
668
|
+
}): Promise<void>;
|
|
669
|
+
/**
|
|
670
|
+
* 请求远端用户打开媒体设备
|
|
671
|
+
* @param {object} options 请求远端用户打开摄像头的参数
|
|
672
|
+
* @param {string} options.userId 用户 Id
|
|
673
|
+
* @param {TUIMediaDevice} options.device 请求的设备
|
|
674
|
+
* @param {number} options.timeout 超时时间。若 timeout 设置为 0 ,则无超时时间
|
|
675
|
+
* @param {Function} 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
|
|
676
|
+
* @return {Promise<TUIRequest>} <br/>
|
|
677
|
+
* 该接口返回 request 结构体,当 request.requestId 不为 '' 时,用户可调用 cancelRequest 接口取消请求。
|
|
678
|
+
*
|
|
679
|
+
* @example
|
|
680
|
+
* const roomEngine = new TUIRoomEngine();
|
|
681
|
+
* const request = roomEngine.openRemoteDeviceByAdmin({
|
|
682
|
+
* userId: 'user_1234',
|
|
683
|
+
* device: TUIMediaDevice.kMicrophone //请求的设备为麦克风
|
|
684
|
+
* timeout: 0,
|
|
685
|
+
* requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
|
|
686
|
+
* switch (requestCallbackType) {
|
|
687
|
+
* case TUIRequestCallbackType.kRequestAccepted:
|
|
688
|
+
* // 请求被接受
|
|
689
|
+
* break;
|
|
690
|
+
* case TUIRequestCallbackType.kRequestRejected:
|
|
691
|
+
* // 请求被拒绝
|
|
692
|
+
* break;
|
|
693
|
+
* case TUIRequestCallbackType.kRequestCancelled:
|
|
694
|
+
* // 请求已取消
|
|
695
|
+
* break;
|
|
696
|
+
* case TUIRequestCallbackType.kRequestTimeout:
|
|
697
|
+
* // 请求超时
|
|
698
|
+
* break;
|
|
699
|
+
* case TUIRequestCallbackType.kRequestError:
|
|
700
|
+
* // 请求错误
|
|
701
|
+
* break;
|
|
702
|
+
* default:
|
|
703
|
+
* break;
|
|
704
|
+
* }
|
|
705
|
+
* },
|
|
706
|
+
* });
|
|
707
|
+
*/
|
|
708
|
+
openRemoteDeviceByAdmin(options: {
|
|
709
|
+
userId: string;
|
|
710
|
+
device: TUIMediaDevice;
|
|
711
|
+
timeout: number;
|
|
712
|
+
requestCallback?: (callbackInfo: TUIRequestCallback) => void;
|
|
713
|
+
}): Promise<TUIRequest>;
|
|
714
|
+
/**
|
|
715
|
+
* 参会者向主持人申请打开设备
|
|
716
|
+
*
|
|
717
|
+
* @param {object} options 请求远端用户打开摄像头的参数
|
|
718
|
+
* @param {TUIMediaDevice} options.device 请求的设备
|
|
719
|
+
* @param {number} options.timeout 超时时间。若 timeout 设置为 0 ,则无超时时间
|
|
720
|
+
* @param {Function} 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
|
|
721
|
+
* @return {Promise<TUIRequest>} <br/>
|
|
722
|
+
* 该接口返回 request 结构体,当 request.requestId 不为 '' 时,用户可调用 cancelRequest 接口取消请求。
|
|
723
|
+
*
|
|
724
|
+
* @example
|
|
725
|
+
* const roomEngine = new TUIRoomEngine();
|
|
726
|
+
* const request = roomEngine.applyToAdminToOpenLocalDevice({
|
|
727
|
+
* device: TUIMediaDevice.kMicrophone, //请求打开麦克风
|
|
728
|
+
* timeout: 0,
|
|
729
|
+
* requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
|
|
730
|
+
* switch (requestCallbackType) {
|
|
731
|
+
* case TUIRequestCallbackType.kRequestAccepted:
|
|
732
|
+
* // 请求被接受
|
|
733
|
+
* break;
|
|
734
|
+
* case TUIRequestCallbackType.kRequestRejected:
|
|
735
|
+
* // 请求被拒绝
|
|
736
|
+
* break;
|
|
737
|
+
* case TUIRequestCallbackType.kRequestCancelled:
|
|
738
|
+
* // 请求已取消
|
|
739
|
+
* break;
|
|
740
|
+
* case TUIRequestCallbackType.kRequestTimeout:
|
|
741
|
+
* // 请求超时
|
|
742
|
+
* break;
|
|
743
|
+
* case TUIRequestCallbackType.kRequestError:
|
|
744
|
+
* // 请求错误
|
|
745
|
+
* break;
|
|
746
|
+
* default:
|
|
747
|
+
* break;
|
|
748
|
+
* }
|
|
749
|
+
* },
|
|
750
|
+
* });
|
|
751
|
+
*/
|
|
752
|
+
applyToAdminToOpenLocalDevice(options: {
|
|
753
|
+
device: TUIMediaDevice;
|
|
754
|
+
timeout: number;
|
|
755
|
+
requestCallback?: (callbackInfo: TUIRequestCallback) => void;
|
|
756
|
+
}): Promise<TUIRequest>;
|
|
757
|
+
/**
|
|
758
|
+
* 关闭远端用户媒体设备
|
|
759
|
+
*
|
|
760
|
+
* @param {object} options 关闭远端用户摄像头的参数
|
|
761
|
+
* @param {string} options.userId 用户 Id
|
|
762
|
+
* @param {TUIMediaDevice} options.device 用户 Id
|
|
763
|
+
* @returns {Promise<void>}
|
|
764
|
+
*
|
|
765
|
+
* @example
|
|
766
|
+
* const roomEngine = new TUIRoomEngine();
|
|
767
|
+
* await roomEngine.closeRemoteDeviceByAdmin({
|
|
768
|
+
* userId: 'user_1234',
|
|
769
|
+
* device: TUIMediaDevice.kMicrophone, //关闭掉麦克风
|
|
770
|
+
* });
|
|
771
|
+
*/
|
|
772
|
+
closeRemoteDeviceByAdmin(options: {
|
|
773
|
+
userId: string;
|
|
774
|
+
device: TUIMediaDevice;
|
|
775
|
+
}): Promise<void>;
|
|
776
|
+
/**
|
|
777
|
+
* 取消已经发出的请求
|
|
778
|
+
* @param {object} options 取消已经发出请求的参数
|
|
779
|
+
* @param {string} options.requestId 请求 Id
|
|
780
|
+
* @returns {Promise<void>}
|
|
781
|
+
*
|
|
782
|
+
* @example
|
|
783
|
+
* const roomEngine = new TUIRoomEngine();
|
|
784
|
+
* await roomEngine.cancelRequest({
|
|
785
|
+
* requestId: '', // 请使用实际 requestId
|
|
786
|
+
* });
|
|
787
|
+
*/
|
|
788
|
+
cancelRequest(options: {
|
|
789
|
+
requestId: string;
|
|
790
|
+
}): Promise<void>;
|
|
791
|
+
/**
|
|
792
|
+
* 回复远端用户的请求
|
|
793
|
+
* @param {object} options 回复远端用户的请求的参数
|
|
794
|
+
* @param {string} options.requestId 请求 Id
|
|
795
|
+
* @param {boolean} options.agree 是否同意
|
|
796
|
+
* @returns {Promise<void>}
|
|
797
|
+
*
|
|
798
|
+
* @example
|
|
799
|
+
* const roomEngine = new TUIRoomEngine();
|
|
800
|
+
*
|
|
801
|
+
* // 同意远端的请求
|
|
802
|
+
* await roomEngine.responseRemoteRequest({
|
|
803
|
+
* requestId: '', // 请使用实际 requestId
|
|
804
|
+
* agree: true,
|
|
805
|
+
* });
|
|
806
|
+
*
|
|
807
|
+
* // 拒绝远端的请求
|
|
808
|
+
* await roomEngine.responseRemoteRequest({
|
|
809
|
+
* requestId: '', // 请使用实际 requestId
|
|
810
|
+
* agree: false,
|
|
811
|
+
* });
|
|
812
|
+
*/
|
|
813
|
+
responseRemoteRequest(options: {
|
|
814
|
+
requestId: string;
|
|
815
|
+
agree: boolean;
|
|
816
|
+
}): Promise<any>;
|
|
817
|
+
/**
|
|
818
|
+
* 禁止/允许所有用户打开媒体设备(此接口对于房主和管理员无效)
|
|
819
|
+
* @param {object} options
|
|
820
|
+
* @param {TUIMediaDevice} options.device 操作的媒体设备
|
|
821
|
+
* @param {boolean} options.isDisable 是否被禁止
|
|
822
|
+
* @returns {Promise<void>}
|
|
823
|
+
* @example
|
|
824
|
+
* // Example 1: 禁止所有用户打开麦克风
|
|
825
|
+
* await roomEngine.disableDeviceForAllUserByAdmin({
|
|
826
|
+
* device: TUIMediaDevice.kMicrophone,
|
|
827
|
+
* isDisable: true,
|
|
828
|
+
* })
|
|
829
|
+
* // Example 2: 允许所有用户打开麦克风
|
|
830
|
+
* await roomEngine.disableDeviceForAllUserByAdmin({
|
|
831
|
+
* device: TUIMediaDevice.kMicrophone,
|
|
832
|
+
* isDisable: false,
|
|
833
|
+
* })
|
|
834
|
+
*/
|
|
835
|
+
disableDeviceForAllUserByAdmin(options: {
|
|
836
|
+
device: TUIMediaDevice;
|
|
837
|
+
isDisable: boolean;
|
|
838
|
+
}): Promise<void>;
|
|
839
|
+
/**
|
|
840
|
+
* 禁止/允许所有用户发送消息
|
|
841
|
+
* @param {object} options
|
|
842
|
+
* @param {boolean} options.isDisable 是否被禁止
|
|
843
|
+
* @returns {Promise<void>}
|
|
844
|
+
* @example
|
|
845
|
+
* await roomEngine.disableSendingMessageForAllUser({
|
|
846
|
+
* isDisable: true,
|
|
847
|
+
* })
|
|
848
|
+
|
|
849
|
+
*/
|
|
850
|
+
disableSendingMessageForAllUser(options: {
|
|
851
|
+
isDisable: boolean;
|
|
852
|
+
}): Promise<void>;
|
|
853
|
+
/**
|
|
854
|
+
* 禁止/允许某个用户发送消息
|
|
855
|
+
* @param {object} options
|
|
856
|
+
* @param {string} options.userId 用户的 Id
|
|
857
|
+
* @param {boolean} options.isDisable 是否被禁止
|
|
858
|
+
* @returns {Promise<void>}
|
|
859
|
+
* @example
|
|
860
|
+
* await roomEngine.disableSendingMessageByAdmin({
|
|
861
|
+
* userId: 'user_1234',
|
|
862
|
+
* isDisable: true,
|
|
863
|
+
* })
|
|
864
|
+
*/
|
|
865
|
+
disableSendingMessageByAdmin(options: {
|
|
866
|
+
userId: string;
|
|
867
|
+
isDisable: boolean;
|
|
868
|
+
}): Promise<void>;
|
|
869
|
+
/**
|
|
870
|
+
* 改变用户的角色,仅主持人可调用该接口
|
|
871
|
+
* @param {object} options 改变用户的角色,仅主持人可调用该接口的参数
|
|
872
|
+
* @param {string} options.userId 用户 Id
|
|
873
|
+
* @param {TUIRole} options.userRole 用户角色
|
|
874
|
+
* @returns {Promise<void>}
|
|
875
|
+
*
|
|
876
|
+
* @example
|
|
877
|
+
* const roomEngine = new TUIRoomEngine();
|
|
878
|
+
* // 将房间移交给用户 user_1234
|
|
879
|
+
* await roomEngine.changeUserRole({
|
|
880
|
+
* userId: 'user_1234',
|
|
881
|
+
* userRole: TUIRole.kRoomOwner,
|
|
882
|
+
* });
|
|
883
|
+
*
|
|
884
|
+
* // 将用户 user_1234 设置为房间管理员
|
|
885
|
+
* await roomEngine.changeUserRole({
|
|
886
|
+
* userId: 'user_1234',
|
|
887
|
+
* userRole: TUIRole.kAdministrator,
|
|
888
|
+
* });
|
|
889
|
+
*/
|
|
890
|
+
changeUserRole(options: {
|
|
891
|
+
userId: string;
|
|
892
|
+
userRole: TUIRole;
|
|
893
|
+
}): Promise<void>;
|
|
894
|
+
/**
|
|
895
|
+
* 修改房间内用户名称
|
|
896
|
+
* @since v2.5.0
|
|
897
|
+
* @param {object} options 修改房间内用户名称,普通成员可修改自己的,管理员可修改自己和普通成员的。
|
|
898
|
+
* @param {string} options.userId 用户 Id
|
|
899
|
+
* @param {string} options.nameCard 房间内用户名称
|
|
900
|
+
* @returns {Promise<void>}
|
|
901
|
+
*
|
|
902
|
+
* @example
|
|
903
|
+
* const roomEngine = new TUIRoomEngine();
|
|
904
|
+
* // 修改房间内用户名称
|
|
905
|
+
* await roomEngine.changeUserNameCard({
|
|
906
|
+
* userId: 'user_1234',
|
|
907
|
+
* nameCard: 'jack',
|
|
908
|
+
* });
|
|
909
|
+
*
|
|
910
|
+
*/
|
|
911
|
+
changeUserNameCard(options: {
|
|
912
|
+
userId: string;
|
|
913
|
+
nameCard: string;
|
|
914
|
+
}): Promise<void>;
|
|
915
|
+
/**
|
|
916
|
+
* 将用户踢出房间,仅主持人和管理员可调用该接口
|
|
917
|
+
* @param {object} options
|
|
918
|
+
* @param {string} options.userId 用户 Id
|
|
919
|
+
* @returns {Promise<void>}
|
|
920
|
+
*
|
|
921
|
+
* @example
|
|
922
|
+
* const roomEngine = new TUIRoomEngine();
|
|
923
|
+
* await roomEngine.kickRemoteUserOutOfRoom({
|
|
924
|
+
* userId: 'user_1234',
|
|
925
|
+
* });
|
|
926
|
+
*/
|
|
927
|
+
kickRemoteUserOutOfRoom(options: {
|
|
928
|
+
userId: string;
|
|
929
|
+
}): Promise<void>;
|
|
930
|
+
/**
|
|
931
|
+
* 获取麦位列表
|
|
932
|
+
* @returns {Promise<TUISeatInfo[]>}
|
|
933
|
+
*
|
|
934
|
+
* @example
|
|
935
|
+
* const roomEngine = new TUIRoomEngine();
|
|
936
|
+
* const seatList = await roomEngine.getSeatList();
|
|
937
|
+
* ;
|
|
938
|
+
*/
|
|
939
|
+
getSeatList(): Promise<TUISeatInfo[]>;
|
|
940
|
+
/**
|
|
941
|
+
* 麦下用户可调用 takeSeat 成为麦上用户,仅麦上用户可发布本地音视频流。<br/>
|
|
942
|
+
* 主持人&管理员调用 takeSeat 成功后即为麦上用户。<br/>
|
|
943
|
+
* roomInfo.seatMode 为 TUISeatMode.kFreeToTake 模式时,普通用户调用 takeSeat 方法成功后即为麦上用户。<br/>
|
|
944
|
+
* roomInfo.seatMode 为 TUISeatMode.kApplyToTake 模式时,普通用户调用 takeSeat 方法需要等待主持人/管理员的同意后成为麦上用户。<br/>
|
|
945
|
+
* 麦上用户的变更通过 TUIRoomEvents.onSeatListChanged 通知所有用户。<br/>
|
|
946
|
+
* @param {object} options 获取麦位的参数
|
|
947
|
+
* @param {number} options.seatIndex 麦位 index, 无麦位序号时设置为 -1
|
|
948
|
+
* @param {number} options.timeout 超时时间。若 timeout 设置为 0,则无超时时间
|
|
949
|
+
* @param {Function} options.requestCallback 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
|
|
950
|
+
* @returns {Promise<TUIRequest>} <br/>
|
|
951
|
+
* 该接口返回 request 结构体,当 request.requestId 不为 '' 时,用户可调用 cancelRequest 接口取消上麦请求。
|
|
952
|
+
*
|
|
953
|
+
* @example
|
|
954
|
+
* const roomEngine = new TUIRoomEngine();
|
|
955
|
+
*
|
|
956
|
+
* // 情景一:主持人/管理员上麦
|
|
957
|
+
* // 情景二:roomInfo.seatMode 为 TUISeatMode.kFreeToTake 模式时,普通用户上麦
|
|
958
|
+
* await roomEngine.takeSeat({
|
|
959
|
+
* seatIndex: -1,
|
|
960
|
+
* timeout: 0,
|
|
961
|
+
* });
|
|
962
|
+
*
|
|
963
|
+
* // 情景三:roomInfo.seatMode 为 TUISeatMode.kApplyToTake 模式时,普通用户上麦
|
|
964
|
+
* const request = await roomEngine.instance?.takeSeat({
|
|
965
|
+
* seatIndex: -1,
|
|
966
|
+
* timeout: 0,
|
|
967
|
+
* requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
|
|
968
|
+
* switch (requestCallbackType) {
|
|
969
|
+
* case TUIRequestCallbackType.kRequestAccepted:
|
|
970
|
+
* // 请求被接受
|
|
971
|
+
* break;
|
|
972
|
+
* case TUIRequestCallbackType.kRequestRejected:
|
|
973
|
+
* // 请求被拒绝
|
|
974
|
+
* break;
|
|
975
|
+
* case TUIRequestCallbackType.kRequestCancelled:
|
|
976
|
+
* // 请求已取消
|
|
977
|
+
* break;
|
|
978
|
+
* case TUIRequestCallbackType.kRequestTimeout:
|
|
979
|
+
* // 请求超时
|
|
980
|
+
* break;
|
|
981
|
+
* case TUIRequestCallbackType.kRequestError:
|
|
982
|
+
* // 请求错误
|
|
983
|
+
* break;
|
|
984
|
+
* default:
|
|
985
|
+
* break;
|
|
986
|
+
* }
|
|
987
|
+
* },
|
|
988
|
+
* });
|
|
989
|
+
*/
|
|
990
|
+
takeSeat(options: {
|
|
991
|
+
seatIndex: number;
|
|
992
|
+
timeout: number;
|
|
993
|
+
requestCallback?: (callbackInfo: TUIRequestCallback) => void;
|
|
994
|
+
}): Promise<TUIRequest>;
|
|
995
|
+
/**
|
|
996
|
+
* 离开麦位
|
|
997
|
+
* @returns {Promise<void>}
|
|
998
|
+
*
|
|
999
|
+
* @example
|
|
1000
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1001
|
+
* await roomEngine.leaveSeat();
|
|
1002
|
+
*/
|
|
1003
|
+
leaveSeat(): Promise<void>;
|
|
1004
|
+
/**
|
|
1005
|
+
* 移麦
|
|
1006
|
+
*
|
|
1007
|
+
* 移麦成功后,SDK会通过 onSeatListChanged 回调通知房间内用户。
|
|
1008
|
+
*
|
|
1009
|
+
* @param {number} options.targetSeatIndex 移麦目标麦位 index, 移麦成功后您将会在此麦位上。
|
|
1010
|
+
* @returns {Promise<void>}
|
|
1011
|
+
* @example
|
|
1012
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1013
|
+
* await roomEngine.moveToSeat({ targetSeatIndex: 1 });
|
|
1014
|
+
*/
|
|
1015
|
+
moveToSeat(options: {
|
|
1016
|
+
targetSeatIndex: number;
|
|
1017
|
+
}): Promise<void>;
|
|
1018
|
+
/**
|
|
1019
|
+
* 邀请其他人上麦(仅房间主持人和管理员可调用此方法)
|
|
1020
|
+
* @param {object} options 邀请其他人上麦的参数
|
|
1021
|
+
* @param {number} options.seatIndex 麦位 index, roomType 为 TUIRoomType.kConference 时无需关心,填 -1 即可
|
|
1022
|
+
* @param {string} options.userId 用户 Id
|
|
1023
|
+
* @param {number} options.timeout 超时时间,设置为 0 时,无超时时间
|
|
1024
|
+
* @param {Function} options.requestCallback 请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
|
|
1025
|
+
* @returns {Promise<TUIRequest>} <br/>
|
|
1026
|
+
* 该接口返回 request 结构体,当 request.requestId 不为 '' 时,用户可调用 cancelRequest 接口取消请求。
|
|
1027
|
+
*
|
|
1028
|
+
* @example
|
|
1029
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1030
|
+
* const request = await roomEngine.takeUserOnSeatByAdmin({
|
|
1031
|
+
* seatIndex: 0,
|
|
1032
|
+
* userId: 'user_1234',
|
|
1033
|
+
* timeout: 0,
|
|
1034
|
+
* requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
|
|
1035
|
+
* switch (requestCallbackType) {
|
|
1036
|
+
* case TUIRequestCallbackType.kRequestAccepted:
|
|
1037
|
+
* // 请求被接受
|
|
1038
|
+
* break;
|
|
1039
|
+
* case TUIRequestCallbackType.kRequestRejected:
|
|
1040
|
+
* // 请求被拒绝
|
|
1041
|
+
* break;
|
|
1042
|
+
* case TUIRequestCallbackType.kRequestCancelled:
|
|
1043
|
+
* // 请求已取消
|
|
1044
|
+
* break;
|
|
1045
|
+
* case TUIRequestCallbackType.kRequestTimeout:
|
|
1046
|
+
* // 请求超时
|
|
1047
|
+
* break;
|
|
1048
|
+
* case TUIRequestCallbackType.kRequestError:
|
|
1049
|
+
* // 请求错误
|
|
1050
|
+
* break;
|
|
1051
|
+
* default:
|
|
1052
|
+
* break;
|
|
1053
|
+
* }
|
|
1054
|
+
* },
|
|
1055
|
+
* });
|
|
1056
|
+
*/
|
|
1057
|
+
takeUserOnSeatByAdmin(options: {
|
|
1058
|
+
seatIndex: number;
|
|
1059
|
+
userId: string;
|
|
1060
|
+
timeout: number;
|
|
1061
|
+
requestCallback?: (callbackInfo: TUIRequestCallback) => void;
|
|
1062
|
+
}): Promise<TUIRequest>;
|
|
1063
|
+
/**
|
|
1064
|
+
* 将其他人踢下麦(仅房间主持人和管理员可调用此方法)
|
|
1065
|
+
* @param {object} options 要求其他人下麦的参数
|
|
1066
|
+
* @param {number} options.seatIndex 麦位 index
|
|
1067
|
+
* @param {string} options.userId 用户 Id
|
|
1068
|
+
* @returns {Promise<void>}
|
|
1069
|
+
*
|
|
1070
|
+
* @example
|
|
1071
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1072
|
+
* await roomEngine.kickUserOffSeatByAdmin({
|
|
1073
|
+
* seatIndex: 0,
|
|
1074
|
+
* userId: 'user_1234',
|
|
1075
|
+
* });
|
|
1076
|
+
*/
|
|
1077
|
+
kickUserOffSeatByAdmin(options: {
|
|
1078
|
+
seatIndex: number;
|
|
1079
|
+
userId: string;
|
|
1080
|
+
}): Promise<void>;
|
|
1081
|
+
/**
|
|
1082
|
+
* 锁定某个麦位状态(仅房间主持人和管理员可调用此方法)
|
|
1083
|
+
*
|
|
1084
|
+
* @param {object} options 锁定某个麦位需要的参数
|
|
1085
|
+
* @param {number} options.seatIndex 麦位索引
|
|
1086
|
+
* @param {TUISeatLockParams} options.lockParams 锁麦参数
|
|
1087
|
+
* @returns {Promise<void>}
|
|
1088
|
+
*
|
|
1089
|
+
* @example
|
|
1090
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1091
|
+
* await roomEngine.lockSeatByAdmin({
|
|
1092
|
+
* seatIndex: -1,
|
|
1093
|
+
* lockParams: {
|
|
1094
|
+
* lockSeat: true,
|
|
1095
|
+
* lockVideo: true,
|
|
1096
|
+
* lockAudio: true,
|
|
1097
|
+
* }
|
|
1098
|
+
* });
|
|
1099
|
+
*/
|
|
1100
|
+
lockSeatByAdmin(options: {
|
|
1101
|
+
seatIndex: number;
|
|
1102
|
+
lockParams: TUISeatLockParams;
|
|
1103
|
+
}): Promise<any>;
|
|
1104
|
+
/**
|
|
1105
|
+
* 主持人/管理员 获取房间内申请上麦用户的请求列表
|
|
1106
|
+
* @returns {Promise<TUIRequest[]>}
|
|
1107
|
+
*
|
|
1108
|
+
* @example
|
|
1109
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1110
|
+
* const seatList = await roomEngine.getSeatApplicationList();
|
|
1111
|
+
* ;
|
|
1112
|
+
*/
|
|
1113
|
+
getSeatApplicationList(): Promise<TUIRequest[]>;
|
|
1114
|
+
/**
|
|
1115
|
+
* @since v3.1.0
|
|
1116
|
+
* 发送文本消息
|
|
1117
|
+
* @param {object} options
|
|
1118
|
+
* @param {string} options.textContent 文本消息内容
|
|
1119
|
+
* @param {object} options.extensionInfo 扩展信息
|
|
1120
|
+
* @returns {Promise<void>}
|
|
1121
|
+
*
|
|
1122
|
+
* @example
|
|
1123
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1124
|
+
* await roomEngine.sendTextMessage({
|
|
1125
|
+
* textContent: 'hello, everyone',
|
|
1126
|
+
* extensionInfo: {}
|
|
1127
|
+
* });
|
|
1128
|
+
*/
|
|
1129
|
+
sendTextMessage(options: {
|
|
1130
|
+
textContent: string;
|
|
1131
|
+
extensionInfo: object;
|
|
1132
|
+
}): Promise<void>;
|
|
1133
|
+
/**
|
|
1134
|
+
* @since v3.1.0
|
|
1135
|
+
* 发送自定义消息
|
|
1136
|
+
* @param {object} options
|
|
1137
|
+
* @param {string} options.businessId 业务 Id
|
|
1138
|
+
* @param {string} options.data 自定义消息内容
|
|
1139
|
+
* @returns {Promise<void>}
|
|
1140
|
+
*
|
|
1141
|
+
* @example
|
|
1142
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1143
|
+
* await roomEngine.sendCustomMessage({
|
|
1144
|
+
* businessId: '111',
|
|
1145
|
+
* data: '{"msg":"test"}',
|
|
1146
|
+
* });
|
|
1147
|
+
*/
|
|
1148
|
+
sendCustomMessage(options: {
|
|
1149
|
+
businessId: string;
|
|
1150
|
+
data: string;
|
|
1151
|
+
}): Promise<void>;
|
|
1152
|
+
/**
|
|
1153
|
+
* 开始屏幕共享
|
|
1154
|
+
* @param {object=} options
|
|
1155
|
+
* @param {boolean=} [options.screenAudio=false] web 端屏幕共享是否可选共享系统声音, screenAudio 默认值为 false
|
|
1156
|
+
* @param {string=} options.view 非必填,本地预览屏幕分享的 dom 元素的 id
|
|
1157
|
+
* @returns {Promise<void>}
|
|
1158
|
+
*
|
|
1159
|
+
* @example
|
|
1160
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1161
|
+
* // example 1: 开始屏幕分享
|
|
1162
|
+
* await roomEngine.startScreenSharing();
|
|
1163
|
+
* // example 2: 开始屏幕分享(可采集系统音频)
|
|
1164
|
+
* await roomEngine.startScreenSharing({ screenAudio: true });
|
|
1165
|
+
* // example 3: 开始屏幕分享并在本地预览
|
|
1166
|
+
* await roomEngine.startScreenSharing({ view: 'screen-preview' });
|
|
1167
|
+
*/
|
|
1168
|
+
startScreenSharing(options?: {
|
|
1169
|
+
screenAudio?: boolean;
|
|
1170
|
+
view?: string;
|
|
1171
|
+
}): Promise<void>;
|
|
1172
|
+
/**
|
|
1173
|
+
* 停止屏幕共享
|
|
1174
|
+
* @returns {Promise<void>}
|
|
1175
|
+
*
|
|
1176
|
+
* @example
|
|
1177
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1178
|
+
* await roomEngine.stopScreenSharing();
|
|
1179
|
+
*/
|
|
1180
|
+
stopScreenSharing(): Promise<void>;
|
|
1181
|
+
/**
|
|
1182
|
+
* 开始屏幕共享 Electron
|
|
1183
|
+
* @param {object} options Electron 开始屏幕共享参数
|
|
1184
|
+
* @param {string} options.targetId 分享窗口 id, 可从 getScreenSharingTarget 获取
|
|
1185
|
+
* @param {string=} options.view 非必填,本地预览屏幕分享的 dom 元素的 id
|
|
1186
|
+
* @returns {Promise<void>}
|
|
1187
|
+
*
|
|
1188
|
+
* @example
|
|
1189
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1190
|
+
* // example 1: 开始屏幕共享
|
|
1191
|
+
* await roomEngine.startScreenSharingElectron({ targetId: 'xxx' });
|
|
1192
|
+
* // example 2: 开始屏幕共享并在本地预览
|
|
1193
|
+
* await roomEngine.startScreenSharingElectron({ targetId: 'xxx', view: 'screen-preview' });
|
|
1194
|
+
*
|
|
1195
|
+
*/
|
|
1196
|
+
startScreenSharingElectron(options: {
|
|
1197
|
+
targetId: string;
|
|
1198
|
+
view?: string;
|
|
1199
|
+
} | string): Promise<void>;
|
|
1200
|
+
/**
|
|
1201
|
+
* 停止屏幕共享 Electron
|
|
1202
|
+
* @returns {Promise<void>}
|
|
1203
|
+
*
|
|
1204
|
+
* @example
|
|
1205
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1206
|
+
* await roomEngine.stopScreenSharingElectron();
|
|
1207
|
+
*/
|
|
1208
|
+
stopScreenSharingElectron(): Promise<void>;
|
|
1209
|
+
/**
|
|
1210
|
+
* 获取屏幕分享列表 Electron
|
|
1211
|
+
* @returns {Promise<void>}
|
|
1212
|
+
*
|
|
1213
|
+
* @example
|
|
1214
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1215
|
+
* const screenList = await roomEngine.getScreenSharingTarget();
|
|
1216
|
+
*/
|
|
1217
|
+
getScreenSharingTarget(): Promise<Array<TRTCScreenCaptureSourceInfo>>;
|
|
1218
|
+
/**
|
|
1219
|
+
* 切换屏幕分享窗口 Electron
|
|
1220
|
+
* @param {object} options Electron 切换屏幕分享窗口参数
|
|
1221
|
+
* @param {string} options.targetId 分享窗口 id, 可从 getScreenSharingTarget 获取
|
|
1222
|
+
*
|
|
1223
|
+
* @returns {Promise<void>}
|
|
1224
|
+
*
|
|
1225
|
+
* @example
|
|
1226
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1227
|
+
* await roomEngine.selectScreenSharingTarget({ targetId: 'xxx' });
|
|
1228
|
+
*/
|
|
1229
|
+
selectScreenSharingTarget(options: {
|
|
1230
|
+
targetId: string;
|
|
1231
|
+
} | string): Promise<void>;
|
|
1232
|
+
private handleCatchErrorFunction;
|
|
1233
|
+
/**
|
|
1234
|
+
* 监听 roomEngine 的事件
|
|
1235
|
+
* @param event TUIRoomEvents
|
|
1236
|
+
* @param func function
|
|
1237
|
+
* @returns {void}
|
|
1238
|
+
*
|
|
1239
|
+
* @example
|
|
1240
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1241
|
+
* roomEngine.on(event, func);
|
|
1242
|
+
*/
|
|
1243
|
+
on(event: TUIRoomEvents, func: (...args: any[]) => void): void;
|
|
1244
|
+
private observerFunction;
|
|
1245
|
+
private supportForDeprecatedEvents;
|
|
1246
|
+
/**
|
|
1247
|
+
* 取消监听 roomEngine 的事件
|
|
1248
|
+
* @param event TUIRoomEvents
|
|
1249
|
+
* @param func function
|
|
1250
|
+
* @returns {void}
|
|
1251
|
+
*
|
|
1252
|
+
* @example
|
|
1253
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1254
|
+
* roomEngine.off(event, func);
|
|
1255
|
+
*/
|
|
1256
|
+
off(event: string, func: (...args: any[]) => void): void;
|
|
1257
|
+
private handleTrtcCloudBindEvent;
|
|
1258
|
+
private handleTrtcAutoPlayFailedEvent;
|
|
1259
|
+
/**
|
|
1260
|
+
* 获取摄像头设备列表<br>
|
|
1261
|
+
* @returns {Promise<TRTCDeviceInfo[]>} 摄像头列表
|
|
1262
|
+
* @example
|
|
1263
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1264
|
+
* const cameralist = await roomEngine.getCameraDevicesList();
|
|
1265
|
+
* for (i = 0; i < cameralist.length; i++) {
|
|
1266
|
+
* var camera = cameralist[i];
|
|
1267
|
+
* console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId);
|
|
1268
|
+
* }
|
|
1269
|
+
*/
|
|
1270
|
+
getCameraDevicesList(): Promise<any>;
|
|
1271
|
+
/**
|
|
1272
|
+
* 获取麦克风设备列表<br>
|
|
1273
|
+
* @returns {Promise<TRTCDeviceInfo[]>} 麦克风列表
|
|
1274
|
+
* @example
|
|
1275
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1276
|
+
* const micList = await roomEngine.getMicDevicesList();
|
|
1277
|
+
* for (i = 0; i < micList.length; i++) {
|
|
1278
|
+
* var mic = micList[i];
|
|
1279
|
+
* console.info("mic deviceName: " + mic.deviceName + " deviceId:" + mic.deviceId);
|
|
1280
|
+
* }
|
|
1281
|
+
*/
|
|
1282
|
+
getMicDevicesList(): Promise<any>;
|
|
1283
|
+
/**
|
|
1284
|
+
* 获取扬声器设备列表<br>
|
|
1285
|
+
* @returns {Promise<TRTCDeviceInfo[]>} 扬声器列表
|
|
1286
|
+
* @example
|
|
1287
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1288
|
+
* const speakerList = await roomEngine.getSpeakerDevicesList();
|
|
1289
|
+
* for (i = 0; i < speakerList.length; i++) {
|
|
1290
|
+
* var speaker = speakerList[i];
|
|
1291
|
+
* console.info("speaker deviceName: " + speaker.deviceName + " deviceId:" + speaker.deviceId);
|
|
1292
|
+
* }
|
|
1293
|
+
*/
|
|
1294
|
+
getSpeakerDevicesList(): Promise<any>;
|
|
1295
|
+
/**
|
|
1296
|
+
* 设置要使用的摄像头设备<br>
|
|
1297
|
+
* @param {Object} options
|
|
1298
|
+
* @param {String} options.deviceId - 从 getCameraDevicesList 中得到的设备 ID
|
|
1299
|
+
* @returns {Promise<void>}
|
|
1300
|
+
* @example
|
|
1301
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1302
|
+
* await roomEngine.setCurrentCameraDevice({ deviceId: '' });
|
|
1303
|
+
*/
|
|
1304
|
+
setCurrentCameraDevice(options: {
|
|
1305
|
+
deviceId: string;
|
|
1306
|
+
}): Promise<void>;
|
|
1307
|
+
/**
|
|
1308
|
+
* 切换前后置摄像头,该接口只适用于移动端浏览器
|
|
1309
|
+
* @param {Object} options
|
|
1310
|
+
* @param {boolean} options.isFrontCamera 是否切换为前置摄像头
|
|
1311
|
+
*
|
|
1312
|
+
* // 移动端切换为前置摄像头
|
|
1313
|
+
* await roomEngine.switchCamera({ isFrontCamera: true });
|
|
1314
|
+
* // 移动端切换为后置摄像头
|
|
1315
|
+
* await roomEngine.switchCamera({ isFrontCamera: false });
|
|
1316
|
+
*/
|
|
1317
|
+
switchCamera(options: {
|
|
1318
|
+
isFrontCamera: boolean;
|
|
1319
|
+
}): Promise<void>;
|
|
1320
|
+
/**
|
|
1321
|
+
* 设置要使用的麦克风设备<br>
|
|
1322
|
+
* @param {Object} options
|
|
1323
|
+
* @param {String} options.deviceId - 从 getMicDevicesList 中得到的设备 ID
|
|
1324
|
+
* @returns {Promise<void>}
|
|
1325
|
+
* @example
|
|
1326
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1327
|
+
* await roomEngine.setCurrentMicDevice({ deviceId: '' });
|
|
1328
|
+
*/
|
|
1329
|
+
setCurrentMicDevice(options: {
|
|
1330
|
+
deviceId: string;
|
|
1331
|
+
}): Promise<void>;
|
|
1332
|
+
/**
|
|
1333
|
+
* 设置要使用的扬声器设备<br>
|
|
1334
|
+
* @param {Object} options
|
|
1335
|
+
* @param {String} options.deviceId - 从 getSpeakerDevicesList 中得到的设备 ID
|
|
1336
|
+
* @returns {Promise<void>}
|
|
1337
|
+
* @example
|
|
1338
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1339
|
+
* await roomEngine.setCurrentSpeakerDevice({ deviceId: '' });
|
|
1340
|
+
*/
|
|
1341
|
+
setCurrentSpeakerDevice(options: {
|
|
1342
|
+
deviceId: string;
|
|
1343
|
+
}): Promise<void>;
|
|
1344
|
+
/**
|
|
1345
|
+
* 获取当前正在使用的摄像头设备
|
|
1346
|
+
* @returns {TRTCDeviceInfo} 设备信息,能获取设备 ID 和设备名称
|
|
1347
|
+
* @example
|
|
1348
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1349
|
+
* const currentCameraDevice = roomEngine.getCurrentCameraDevice();
|
|
1350
|
+
*/
|
|
1351
|
+
getCurrentCameraDevice(): TRTCDeviceInfo;
|
|
1352
|
+
/**
|
|
1353
|
+
* 获取当前正在使用的麦克风设备
|
|
1354
|
+
* @returns {TRTCDeviceInfo} 设备信息,能获取设备 ID 和设备名称
|
|
1355
|
+
* @example
|
|
1356
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1357
|
+
* const currentMicDevice = roomEngine.getCurrentMicDevice();
|
|
1358
|
+
*/
|
|
1359
|
+
getCurrentMicDevice(): TRTCDeviceInfo;
|
|
1360
|
+
/**
|
|
1361
|
+
* 获取当前正在使用的扬声器设备
|
|
1362
|
+
* @returns {TRTCDeviceInfo} 设备信息,能获取设备 ID 和设备名称
|
|
1363
|
+
* @example
|
|
1364
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1365
|
+
* const currentSpeakerDevice = roomEngine.getCurrentSpeakerDevice();
|
|
1366
|
+
*/
|
|
1367
|
+
getCurrentSpeakerDevice(): TRTCDeviceInfo;
|
|
1368
|
+
/**
|
|
1369
|
+
* 开始进行摄像头测试
|
|
1370
|
+
* @param {string} view 显示摄像头测试的视频区域, 传入的 view 为承载预览画面 div 元素的 id
|
|
1371
|
+
* @returns {Promise<void>}
|
|
1372
|
+
*
|
|
1373
|
+
* @example
|
|
1374
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1375
|
+
* await roomEngine.startCameraDeviceTest({ view: 'test-preview' });
|
|
1376
|
+
*/
|
|
1377
|
+
startCameraDeviceTest(options: {
|
|
1378
|
+
view: string;
|
|
1379
|
+
}): Promise<void>;
|
|
1380
|
+
/**
|
|
1381
|
+
* 停止摄像头测试
|
|
1382
|
+
* @returns {void}
|
|
1383
|
+
* @example
|
|
1384
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1385
|
+
* await roomEngine.stopCameraDeviceTest();
|
|
1386
|
+
*/
|
|
1387
|
+
stopCameraDeviceTest(): Promise<void>;
|
|
1388
|
+
/**
|
|
1389
|
+
* 开始进行麦克风测试
|
|
1390
|
+
* @param options
|
|
1391
|
+
* @param {number} options.interval 麦克风音量的回调时间
|
|
1392
|
+
*
|
|
1393
|
+
* @example
|
|
1394
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1395
|
+
* await roomEngine.startMicDeviceTest({interval: 200});
|
|
1396
|
+
*/
|
|
1397
|
+
startMicDeviceTest(options: {
|
|
1398
|
+
interval: number;
|
|
1399
|
+
}): Promise<void>;
|
|
1400
|
+
/**
|
|
1401
|
+
* 停止进行麦克风测试
|
|
1402
|
+
* @example
|
|
1403
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1404
|
+
* await roomEngine.stopMicDeviceTest();
|
|
1405
|
+
*/
|
|
1406
|
+
stopMicDeviceTest(): Promise<void>;
|
|
1407
|
+
/**
|
|
1408
|
+
* v2.1.0 版本起支持使用 getMediaDeviceManager 获取 deviceManager 模块
|
|
1409
|
+
* @since v2.1.0
|
|
1410
|
+
* @example
|
|
1411
|
+
* // 获取设备管理模块
|
|
1412
|
+
* const deviceManager = roomEngine.getMediaDeviceManager();
|
|
1413
|
+
*
|
|
1414
|
+
* @returns {TUIRoomDeviceManager} deviceManager
|
|
1415
|
+
*/
|
|
1416
|
+
getMediaDeviceManager(): TUIRoomDeviceManager;
|
|
1417
|
+
/**
|
|
1418
|
+
* v2.5.0 版本起支持使用 getConferenceListManager 获取 conferenceListManager 模块
|
|
1419
|
+
* @since v2.5.0
|
|
1420
|
+
*
|
|
1421
|
+
* @example
|
|
1422
|
+
* // 获取会议列表
|
|
1423
|
+
* const conferenceListManager = roomEngine.getConferenceListManager();
|
|
1424
|
+
*
|
|
1425
|
+
* @returns {TUIConferenceListManager} conferenceListManager
|
|
1426
|
+
*/
|
|
1427
|
+
getConferenceListManager(): TUIConferenceListManager;
|
|
1428
|
+
/**
|
|
1429
|
+
* v3.0.0 版本起支持 getLiveListManager 获取 TUILiveListManager 模块
|
|
1430
|
+
*
|
|
1431
|
+
* @since v3.0.0
|
|
1432
|
+
* @returns {TUILiveListManager}
|
|
1433
|
+
*
|
|
1434
|
+
* @example
|
|
1435
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1436
|
+
* const liveListManager = roomEngine.getLiveListManager();
|
|
1437
|
+
*/
|
|
1438
|
+
getLiveListManager(): TUILiveListManager;
|
|
1439
|
+
/**
|
|
1440
|
+
* v3.0.0 版本起支持 getLiveLayoutManager 获取 TUILiveLayoutManager 模块
|
|
1441
|
+
*
|
|
1442
|
+
* @since v3.0.0
|
|
1443
|
+
* @returns {TUILiveLayoutManager}
|
|
1444
|
+
*
|
|
1445
|
+
* @example
|
|
1446
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1447
|
+
* const liveLayoutManager = roomEngine.getLiveLayoutManager();
|
|
1448
|
+
*/
|
|
1449
|
+
getLiveLayoutManager(): TUILiveLayoutManager;
|
|
1450
|
+
/**
|
|
1451
|
+
* v3.2.0 版本起支持 getLiveConnectionManager 获取 TUILiveConnectionManager 模块
|
|
1452
|
+
*
|
|
1453
|
+
* @since v3.2.0
|
|
1454
|
+
* @returns {TUILiveConnectionManager}
|
|
1455
|
+
*
|
|
1456
|
+
* @example
|
|
1457
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1458
|
+
* const liveConnectionManager = roomEngine.getLiveConnectionManager();
|
|
1459
|
+
*/
|
|
1460
|
+
getLiveConnectionManager(): TUILiveConnectionManager;
|
|
1461
|
+
/**
|
|
1462
|
+
* v2.6.0 版本起支持使用 getConferenceInvitationManager 获取 conferenceInvitation 模块
|
|
1463
|
+
* @since v2.6.0
|
|
1464
|
+
*
|
|
1465
|
+
* @example
|
|
1466
|
+
* //获取会中邀请
|
|
1467
|
+
* const conferenceInvitationManager = roomEngine.getConferenceInvitationManager();
|
|
1468
|
+
*
|
|
1469
|
+
* @returns {TUIConferenceInvitationManager} conferenceInvitationManager
|
|
1470
|
+
*/
|
|
1471
|
+
getConferenceInvitationManager(): TUIConferenceInvitationManager;
|
|
1472
|
+
/**
|
|
1473
|
+
* 获取 trtcCloud 实例
|
|
1474
|
+
* @returns {TRTCCloud} trtcCloud
|
|
1475
|
+
* web 端 trtcCloud 能力请查看:https://web.sdk.qcloud.com/trtc/webrtc/trtcCloud/doc/TRTCCloud.html
|
|
1476
|
+
*
|
|
1477
|
+
* @example
|
|
1478
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1479
|
+
* const trtcCloud = roomEngine.getTRTCCloud();
|
|
1480
|
+
*/
|
|
1481
|
+
getTRTCCloud(): TRTCCloud;
|
|
1482
|
+
/**
|
|
1483
|
+
* 获取 tim 实例
|
|
1484
|
+
* @returns {TIM} tim
|
|
1485
|
+
* web 端 tim 能力请查看:https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html
|
|
1486
|
+
*
|
|
1487
|
+
* @example
|
|
1488
|
+
* const roomEngine = new TUIRoomEngine();
|
|
1489
|
+
* const tim = roomEngine.getTIM();
|
|
1490
|
+
*/
|
|
1491
|
+
getTIM(): ChatSDK;
|
|
1492
|
+
destroy(): void;
|
|
1493
|
+
/**
|
|
1494
|
+
* 实验性接口
|
|
1495
|
+
* @private
|
|
1496
|
+
* @param jsonStr jason 字符串
|
|
1497
|
+
* @returns
|
|
1498
|
+
*/
|
|
1499
|
+
static callExperimentalAPI(jsonStr: string): Promise<void>;
|
|
1500
|
+
private static handleSetFramework;
|
|
1501
|
+
}
|
|
1502
|
+
export default TUIRoomEngine;
|