@trtc/call-engine-lite-js 3.4.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 ADDED
@@ -0,0 +1,1171 @@
1
+ import { ChatSDK } from '@tencentcloud/lite-chat/basic';
2
+ export { default as TIM, default as TencentCloudChat } from '@tencentcloud/lite-chat/basic';
3
+ import TRTCCloud, { TRTCVideoRotation, TRTCBeautyStyle, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCDeviceInfo } from 'trtc-cloud-js-sdk';
4
+ export { Rect, TRTCBeautyStyle, default as TRTCCloud, TRTCDeviceInfo, TRTCDeviceState, TRTCDeviceType, TRTCLogLevel, TRTCScreenCaptureSourceInfo, TRTCScreenCaptureSourceType, TRTCVideoEncParam, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoRotation, TRTCVideoStreamType, TRTCVolumeInfo } from 'trtc-cloud-js-sdk';
5
+
6
+ interface ITUICallEngineOption {
7
+ SDKAppID?: number;
8
+ sdkAppID?: number;
9
+ tim?: any;
10
+ callkitVersion?: string;
11
+ framework?: string;
12
+ isFromChat?: boolean;
13
+ language?: number;
14
+ component?: number;
15
+ isSharedInstance?: boolean;
16
+ }
17
+ interface ICallParam {
18
+ userID: string;
19
+ type: CALL_MEDIA_TYPE;
20
+ timeout?: number;
21
+ offlinePushInfo?: OfflinePushInfo;
22
+ roomID?: number;
23
+ strRoomID?: string;
24
+ userData?: string;
25
+ }
26
+ interface IGroupCallParam {
27
+ userIDList: string[];
28
+ type: CALL_MEDIA_TYPE;
29
+ groupID: string;
30
+ timeout?: number;
31
+ offlinePushInfo?: OfflinePushInfo;
32
+ roomID?: number;
33
+ strRoomID?: string;
34
+ userData?: string;
35
+ }
36
+ interface IJoinInGroupCallParam {
37
+ type: CALL_MEDIA_TYPE;
38
+ groupID: string;
39
+ roomID: number;
40
+ strRoomID: string;
41
+ }
42
+ interface IInviteUserParam {
43
+ userIDList: string[];
44
+ offlinePushInfo?: OfflinePushInfo;
45
+ timeout?: number;
46
+ userData?: string;
47
+ }
48
+ interface ISwitchDeviceParams {
49
+ deviceType: DEVICE_TYPE;
50
+ deviceId: string;
51
+ }
52
+ interface ICallsParam {
53
+ userIDList: string[];
54
+ type: CALL_MEDIA_TYPE;
55
+ chatGroupID?: string;
56
+ timeout?: number;
57
+ offlinePushInfo?: OfflinePushInfo;
58
+ roomID?: number;
59
+ strRoomID?: string;
60
+ userData?: string;
61
+ }
62
+ interface IJoinParam {
63
+ callId: string;
64
+ }
65
+ interface OfflinePushInfo {
66
+ title?: string;
67
+ description?: string;
68
+ androidOPPOChannelID?: string;
69
+ extension: string;
70
+ ignoreIOSBadge?: boolean;
71
+ iOSSound?: string;
72
+ androidSound?: string;
73
+ androidVIVOClassification?: number;
74
+ androidXiaoMiChannelID?: string;
75
+ androidFCMChannelID?: string;
76
+ androidHuaWeiCategory?: string;
77
+ isDisablePush?: boolean;
78
+ iOSPushType?: IOSOfflinePushType;
79
+ }
80
+ declare enum IOSOfflinePushType {
81
+ APNs = 0,
82
+ VoIP = 1
83
+ }
84
+ interface IStopRemoteViewParam {
85
+ userID: string;
86
+ }
87
+ declare enum CALL_MEDIA_TYPE {
88
+ UNKNOWN = 0,
89
+ AUDIO_CALL = 1,
90
+ VIDEO_CALL = 2
91
+ }
92
+ declare enum LOG_LEVEL {
93
+ NORMAL = 0,
94
+ RELEASE = 1,
95
+ WARNING = 2,
96
+ ERROR = 3,
97
+ NONE = 4
98
+ }
99
+
100
+ interface IPlayVideoOption {
101
+ rotation?: TRTCVideoRotation;
102
+ fillMode?: TRTCVideoFillMode;
103
+ mirrorType?: TRTCVideoMirrorType;
104
+ muted?: boolean;
105
+ }
106
+ interface IStartRemoteViewParam {
107
+ userID: string;
108
+ videoViewDomID: string;
109
+ options?: IPlayVideoOption;
110
+ }
111
+ interface IVideoRenderParam {
112
+ userID?: string;
113
+ rotation?: TRTCVideoRotation;
114
+ objectFit?: string;
115
+ muted?: boolean;
116
+ mirror?: boolean;
117
+ }
118
+ declare enum DEVICE_TYPE {
119
+ CAMERA = "camera",
120
+ SPEAKER = "speaker",
121
+ MICROPHONES = "microphones",
122
+ MICROPHONE = "microphone",
123
+ AUDIO = "audio",
124
+ VIDEO = "video"
125
+ }
126
+ interface IBeautyLevelParams {
127
+ style: TRTCBeautyStyle;
128
+ beautyLevel: number;
129
+ whitenessLevel: number;
130
+ ruddinessLevel: number;
131
+ }
132
+
133
+ declare enum TUIErrorCode {
134
+ ERR_SUCC = 0,
135
+ ERR_FAILED = -1,
136
+ ERR_INVALID_PARAMETER = -1001,
137
+ ERR_SDK_NOT_INITIALIZED = -1002,
138
+ ERR_PERMISSION_DENIED = -1003,
139
+ ERR_REQUIRE_PAYMENT = -1004,
140
+ ERR_CAMERA_START_FAILED = -1100,
141
+ ERR_CAMERA_NOT_AUTHORIZED = -1101,
142
+ ERR_CAMERA_OCCUPIED = -1102,
143
+ ERR_CAMERA_DEVICE_EMPTY = -1103,
144
+ ERR_MICROPHONE_START_FAILED = -1104,
145
+ ERR_MICROPHONE_NOT_AUTHORIZED = -1105,
146
+ ERR_MICROPHONE_OCCUPIED = -1106,
147
+ ERR_MICROPHONE_DEVICE_EMPTY = -1107,
148
+ ERR_ROOM_NAME_INVALID = -2107,
149
+ ERR_USER_NOT_EXIST = -2200,
150
+ ERR_REQUEST_ID_INVALID = -2311
151
+ }
152
+ declare enum TUIVideoQuality {
153
+ kVideoQuality_360p = 1,
154
+ kVideoQuality_540p = 2,
155
+ kVideoQuality_720p = 3,
156
+ kVideoQuality_1080p = 4
157
+ }
158
+ declare enum TUIAudioQuality {
159
+ kAudioProfileSpeech = 0,
160
+ kAudioProfileDefault = 1,
161
+ kAudioProfileMusic = 2
162
+ }
163
+ declare enum TUINetworkQuality {
164
+ kQualityUnknown = 0,
165
+ kQualityExcellent = 1,
166
+ kQualityGood = 2,
167
+ kQualityPoor = 3,
168
+ kQualityBad = 4,
169
+ kQualityVeryBad = 5,
170
+ kQualityDown = 6
171
+ }
172
+ /**
173
+ * 消息结构体
174
+ * @typedef {object} TUINetwork
175
+ * @property {string} userId 用户 Id
176
+ * @property {TUINetworkQuality} quality 网络质量
177
+ * @property {number} upLoss 上行丢包率,单位 (%) 该数值越小越好,目前仅本地用户有该信息
178
+ * @property {TUIRole} downLoss 下行丢包率,单位 (%) 该数值越小越好,目前仅本地用户有该信息
179
+ * @property {Number} delay 网络延迟,单位 ms,目前仅本地用户有该信息
180
+ */
181
+ type TUINetwork = {
182
+ userId: string;
183
+ quality: TUINetworkQuality;
184
+ upLoss: number;
185
+ downLoss: number;
186
+ delay: number;
187
+ };
188
+ /**
189
+ * 视频编码参数
190
+ * @typedef {object} TUIVideoEncoderParams
191
+ * @property {number} fps 帧率设置
192
+ * @property {number} bitrate 目标编码码率设置
193
+ * @property {TUIVideoQuality} quality 上行视频分辨率
194
+ * @property {TUIVideoQuality} videoResolution 上行视频分辨率(自 v1.6.0 版本开始支持,v1.6.0 之前版本请使用 quality 参数)
195
+ * @property {TUIResolutionMode} resolutionMode 横竖屏模式
196
+ */
197
+ type TUIVideoEncoderParams = {
198
+ quality?: TUIVideoQuality;
199
+ videoResolution: TUIVideoQuality;
200
+ fps: number;
201
+ bitrate: number;
202
+ resolutionMode: TUIResolutionMode;
203
+ };
204
+ declare enum TUIKickedOutOfRoomReason {
205
+ kKickedByAdmin = 0,
206
+ kKickedByLoggedOnOtherDevice = 1,
207
+ kKickedByServer = 2
208
+ }
209
+ declare enum TUIResolutionMode {
210
+ kResolutionMode_Landscape = 0,
211
+ kResolutionMode_Portrait = 1
212
+ }
213
+ type TUIDeviceInfo = {
214
+ deviceId: string;
215
+ deviceName: string;
216
+ deviceProperties?: {
217
+ supportedResolution?: {
218
+ width: number;
219
+ height: number;
220
+ }[];
221
+ };
222
+ };
223
+ /**
224
+ * **TUIRoomEngine 事件列表**<br>
225
+ * @namespace TUICallEvents
226
+ * @example
227
+ * import TUIRoomEngine, { TUICallEvents } from '@tencentcloud/tuiroom-engine-js';
228
+ * const roomEngine = new TUIRoomEngine();
229
+ * roomEngine.on(TUICallEvents.onError, (error) => {
230
+ * console.log('roomEngine.error', error);
231
+ * })
232
+ */
233
+ declare enum TUICallEvent {
234
+ /**
235
+ * @description sdk内部发生了错误
236
+ * @memberOf module:TUICallEvent
237
+ * @example
238
+ * let onError = function(error) {
239
+ * console.log(error)
240
+ * };
241
+ * tuiCallEngine.on(TUICallEvent.ERROR, onError);
242
+ */
243
+ ERROR = "onError",
244
+ /**
245
+ * @description SDK 进入 ready 状态时收到该回调
246
+ * @memberOf module:TUICallEvent
247
+ * @example
248
+ * let onSDKReady = function(event) {
249
+ * console.log(event)
250
+ * };
251
+ * tuiCallEngine.on(TUICallEvent.SDK_READY, onSDKReady);
252
+ */
253
+ SDK_READY = "sdkReady",
254
+ /**
255
+ * @description 重复登陆,收到该回调说明被踢出房间
256
+ * @memberOf module:TUICallEvent
257
+ * @example
258
+ * let handleOnKickedOut = function(event) {
259
+ * console.log(event)
260
+ * };
261
+ * tuiCallEngine.on(TUICallEvent.KICKED_OUT, handleOnKickedOut);
262
+ */
263
+ KICKED_OUT = "onKickedOffLine",
264
+ /**
265
+ * @description userSig 过期事件
266
+ * @default 'onUserSigExpired'
267
+ * @event TUICallEvents#onUserSigExpired
268
+ * @example
269
+ * const roomEngine = new TUIRoomEngine();
270
+ * roomEngine.on(TUICallEvents.onUserSigExpired, () => {
271
+ * console.log('roomEngine.onUserSigExpired');
272
+ * });
273
+ */
274
+ onUserSigExpired = "onUserSigExpired",
275
+ /**
276
+ * @description 表示通话接通(仅被叫收到),您可以通过监听这个事件来开启云端录制、内容审核等流程。
277
+ * @memberOf module:TUICallEvent
278
+ * @example
279
+ * let handleOnCallBegin = function(event) {
280
+ * console.log(event)
281
+ * };
282
+ * tuiCallEngine.on(TUICallEvent.ON_CALL_BEGIN, handleOnCallBegin);
283
+ */
284
+ ON_CALL_BEGIN = "onCallBegin",
285
+ /**
286
+ * @description 收到通话请求的回调(仅被叫收到)
287
+ * - 注意:废弃, 请使用 ON_CALL_RECEIVED 事件。
288
+ * @memberOf module:TUICallEvent
289
+ * @example
290
+ * let handleNewInvitationReceived = function(event) {
291
+ * console.log(event)
292
+ * };
293
+ * tuiCallEngine.on(TUICallEvent.INVITED, handleNewInvitationReceived);
294
+ */
295
+ INVITED = "onInvited",
296
+ /**
297
+ * @description 收到通话请求的回调(仅被叫收到),您可以通过监听这个事件,来决定是否显示通话接听界面。
298
+ * @memberOf module:TUICallEvent
299
+ * @example
300
+ * let handleOnCallReceived = function(event) {
301
+ * console.log(event)
302
+ * };
303
+ * tuiCallEngine.on(TUICallEvent.ON_CALL_RECEIVED, handleOnCallReceived);
304
+ */
305
+ ON_CALL_RECEIVED = "onCallReceived",
306
+ /**
307
+ * @description 如果有用户接听,那么会收到此回调
308
+ * @memberOf module:TUICallEvent
309
+ * @example
310
+ * let handleUserAccept = function(event) {
311
+ * console.log(event)
312
+ * };
313
+ * tuiCallEngine.on(TUICallEvent.USER_ACCEPT, handleUserAccept);
314
+ */
315
+ USER_ACCEPT = "onUserAccept",
316
+ /**
317
+ * @description 如果有用户同意进入通话,那么会收到此回调
318
+ * @memberOf module:TUICallEvent
319
+ * @example
320
+ * let handleUserEnter = function(event) {
321
+ * console.log(event)
322
+ * };
323
+ * tuiCallEngine.on(TUICallEvent.USER_ENTER, handleUserEnter);
324
+ */
325
+ USER_ENTER = "onUserJoin",
326
+ /**
327
+ * @description 如果有用户同意离开通话,那么会收到此回调
328
+ * @memberOf module:TUICallEvent
329
+ * @example
330
+ * let handleUserLeave = function(event) {
331
+ * console.log(event)
332
+ * };
333
+ * tuiCallEngine.on(TUICallEvent.USER_LEAVE, handleUserLeave);
334
+ */
335
+ USER_LEAVE = "onUserLeave",
336
+ /**
337
+ * @description 用户拒绝通话
338
+ * 1. 在C2C通话中,只有发起方会收到拒绝回调
339
+ * 例如 A 邀请 B、C 进入通话,B拒绝,A可以收到该回调,但C不行
340
+ * 2. 在IM群组通话中,所有被邀请人均能收到该回调
341
+ * 例如 A 邀请 B、C 进入通话,B拒绝,A、C均能收到该回调
342
+ * @memberOf module:TUICallEvent
343
+ * @example
344
+ * let handleInviteeReject = function(event) {
345
+ * console.log(event)
346
+ * };
347
+ * tuiCallEngine.on(TUICallEvent.REJECT, handleInviteeReject);
348
+ */
349
+ REJECT = "onUserReject",
350
+ /**
351
+ * @description 邀请用户无应答
352
+ * 1. 在C2C通话中,只有发起方会收到无人应答的回调
353
+ * 例如 A 邀请 B、C 进入通话,B不应答,A可以收到该回调,但C不行
354
+ * 2. 在IM群组通话中,所有被邀请人均能收到该回调
355
+ * 例如 A 邀请 B、C 进入通话,B不应答,A、C均能收到该回调
356
+ * @memberOf module:TUICallEvent
357
+ * @example
358
+ * let handleNoResponse = function(event) {
359
+ * console.log(event)
360
+ * };
361
+ * tuiCallEngine.on(TUICallEvent.NO_RESP, handleNoResponse);
362
+ */
363
+ NO_RESP = "onUserNoResponse",
364
+ /**
365
+ * @description 邀请方忙线
366
+ * @memberOf module:TUICallEvent
367
+ * @example
368
+ * let handleLineBusy = function(event) {
369
+ * console.log(event)
370
+ * };
371
+ * tuiCallEngine.on(TUICallEvent.LINE_BUSY, handleLineBusy);
372
+ */
373
+ LINE_BUSY = "onUserLineBusy",
374
+ /**
375
+ * @description 作为被邀请方会收到,收到该回调说明本次通话被取消了
376
+ * - **注意:废弃,推荐使用 ON_CALL_NOT_CONNECTED 事件**。
377
+ * @memberOf module:TUICallEvent
378
+ * @example
379
+ * let handleCallingCancel = function(event) {
380
+ * console.log(event)
381
+ * };
382
+ * tuiCallEngine.on(TUICallEvent.CALLING_CANCEL, handleCallingCancel);
383
+ */
384
+ CALLING_CANCEL = "onCallingCancel",
385
+ /**
386
+ * @description 如果通话未建立,都会抛出该事件。您可以通过监听该事件来实现类似未接来电、重置 UI 状态等显示逻辑。
387
+ * - **注意:废弃,推荐使用 ON_CALL_NOT_CONNECTED 事件**。
388
+ * @memberOf module:TUICallEvent
389
+ * @example
390
+ * let handleOnCallCanceled = function(event) {
391
+ * console.log(event)
392
+ * };
393
+ * tuiCallEngine.on(TUICallEvent.ON_CALL_CANCELED, handleOnCallCanceled);
394
+ */
395
+ ON_CALL_CANCELED = "onCallCancelled",
396
+ /**
397
+ * @private
398
+ * @description 收到该回调说明本次通话结束了
399
+ * - **注意:废弃,推荐使用 ON_CALL_NOT_CONNECTED 事件**。
400
+ * @memberOf module:TUICallEvent
401
+ * @example
402
+ * let handleCallingEnd = function(event) {
403
+ * console.log(event)
404
+ * };
405
+ * tuiCallEngine.on(TUICallEvent.CALL_END, handleCallingEnd);
406
+ */
407
+ CALL_END = "onCallEnd",
408
+ /**
409
+ * @description 收到该回调说明本次通话结束了
410
+ * @memberOf module:TUICallEvent
411
+ * @example
412
+ * let handleCallingEnd = function(event) {
413
+ * console.log(event)
414
+ * };
415
+ * tuiCallEngine.on(TUICallEvent.CALLING_END, handleCallingEnd);
416
+ */
417
+ CALLING_END = "onCallEnd",
418
+ /**
419
+ * @description 远端用户开启/关闭了摄像头, 会收到该回调
420
+ * @memberOf module:TUICallEvent
421
+ * @example
422
+ * let handleUserVideoChange = function(event) {
423
+ * console.log(event)
424
+ * };
425
+ * tuiCallEngine.on(TUICallEvent.USER_VIDEO_AVAILABLE, handleUserVideoChange);
426
+ */
427
+ USER_VIDEO_AVAILABLE = "onUserVideoAvailable",
428
+ /**
429
+ * @description 远端用户开启/关闭了麦克风, 会收到该回调
430
+ * @memberOf module:TUICallEvent
431
+ * @example
432
+ * let handleUserAudioChange = function(event) {
433
+ * console.log(event)
434
+ * };
435
+ * tuiCallEngine.on(TUICallEvent.USER_AUDIO_AVAILABLE, handleUserAudioChange);
436
+ */
437
+ USER_AUDIO_AVAILABLE = "onUserAudioAvailable",
438
+ /**
439
+ * @description 远端用户说话音量调整, 会收到该回调
440
+ * @memberOf module:TUICallEvent
441
+ * @example
442
+ * let handleUserVoiceVolumeChange = function(event) {
443
+ * console.log(event)
444
+ * };
445
+ * tuiCallEngine.on(TUICallEvent.USER_VOICE_VOLUME, handleUserVoiceVolumeChange);
446
+ */
447
+ USER_VOICE_VOLUME = "onUserVoiceVolumeChanged",
448
+ /**
449
+ * @description 群聊更新邀请列表收到该回调
450
+ * @memberOf module:TUICallEvent
451
+ * @example
452
+ * let handleGroupInviteeListUpdate = function(event) {
453
+ * console.log(event)
454
+ * };
455
+ * tuiCallEngine.on(TUICallEvent.GROUP_CALL_INVITEE_LIST_UPDATE, handleGroupInviteeListUpdate);
456
+ */
457
+ GROUP_CALL_INVITEE_LIST_UPDATE = "onGroupCallInviteeListUpdate",
458
+ /**
459
+ * @description 通话类型切换收到该回调
460
+ * @memberOf module:TUICallEvent
461
+ * @example
462
+ * let handleCallTypeChanged = function({oldCallType, newCallType}) {
463
+ * console.log(oldCallType, newCallType)
464
+ * };
465
+ * tuiCallEngine.on(TUICallEvent.CALL_TYPE_CHANGED, handleCallTypeChanged);
466
+ */
467
+ CALL_TYPE_CHANGED = "onCallMediaTypeChanged",
468
+ /**
469
+ * @description 设备列表更新
470
+ * @memberOf module:TUICallEvent
471
+ * @example
472
+ * let handleDeviceUpdated = function({ microphoneList, cameraList, currentMicrophone, currentCamera}) {
473
+ * console.log(microphoneList, cameraList, currentMicrophone, currentCamera)
474
+ * };
475
+ * tuiCallEngine.on(TUICallEvent.DEVICED_UPDATED, handleDeviceUpdated);
476
+ */
477
+ DEVICED_UPDATED = "onDeviceUpdated",
478
+ /**
479
+ * @description 用户网络质量
480
+ * @memberOf module:TUICallEvent
481
+ * @example
482
+ * let handleOnUserNetworkQualityChanged = function(event) {
483
+ * console.log(event.networkQualityList);
484
+ * };
485
+ * tuiCallEngine.on(TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED, handleOnUserNetworkQualityChanged);
486
+ */
487
+ ON_USER_NETWORK_QUALITY_CHANGED = "onUserNetworkQualityChanged",
488
+ MESSAGE_SENT_BY_ME = "onMessageSentByMe",
489
+ /**
490
+ * @description 设备变更事件
491
+ * @memberOf module:TUICallEvent
492
+ * @param {object} options
493
+ * @param {string} options.deviceId 设备 Id
494
+ * @param {any} options.type 设备类型
495
+ * @param {any} options.state 设备变更状态
496
+ * @example
497
+ * tuiCallEngine.on(TUICallEvent.onDeviceChange, ({ deviceId, type, state }) => {
498
+ * console.log('roomEngine.onDeviceChange', deviceId, type, state);
499
+ * });
500
+ */
501
+ onDeviceChange = "onDeviceChange",
502
+ /**
503
+ * @description 通话结束的回调,通话未接通的情况下,因为用户拒绝、忙线等原因导致的通话结束,都会回调该接口。
504
+ * - **注意:v3.0.0 + 支持**。
505
+ * @memberOf module:TUICallEvent
506
+ * @example
507
+ * tuiCallEngine.on(TUICallEvent.ON_CALL_NOT_CONNECTED, (event) => {
508
+ * console.log(event);
509
+ * });
510
+ */
511
+ ON_CALL_NOT_CONNECTED = "onCallNotConnected",
512
+ /**
513
+ * @description 当一个多人通话发生邀请他人时, 处在该通话的所有人都会抛出该事件, userId 就是被邀请者
514
+ * - **注意:v3.0.0 + 支持**。
515
+ * @memberOf module:TUICallEvent
516
+ * @example
517
+ * tuiCallEngine.on(TUICallEvent.ON_USER_INVITING, (event) => {
518
+ * console.log(event);
519
+ * });
520
+ */
521
+ ON_USER_INVITING = "onUserInviting"
522
+ }
523
+ declare enum TUIRoomDeviceMangerEvents {
524
+ /**
525
+ * @description 设备变更事件
526
+ * @default 'onDeviceChange'
527
+ * @event TUIRoomDeviceMangerEvents#onDeviceChange
528
+ * @param {object} options
529
+ * @param {string} options.deviceId 设备 Id
530
+ * @param {any} options.type 设备类型
531
+ * @param {any} options.state 设备变更状态
532
+ * @example
533
+ * const roomEngine = new TUIRoomEngine();
534
+ * const deviceManager = roomEngine.getDeviceManager();
535
+ * deviceManager.on(TUIRoomDeviceMangerEvents.onDeviceChange, ({ deviceId, type, state }) => {
536
+ * console.log('deviceManager.onDeviceChange', deviceId, type, state);
537
+ * });
538
+ */
539
+ onDeviceChanged = "onDeviceChanged"
540
+ }
541
+ declare enum TUICamera {
542
+ kFront = 0,
543
+ kBack = 1
544
+ }
545
+ /**
546
+ * 切换摄像头参数
547
+ * @memberof SDK
548
+ *
549
+ * @exports TUICallCameraPosition
550
+ * @module TUICallCameraPosition
551
+ */
552
+ declare enum TUICallCameraPosition {
553
+ /**
554
+ * @description 摄像头类型 - 前置摄像头
555
+ * @memberOf module:TRTCCallCameraPosition
556
+ * @example
557
+ * tuiCallEngine.switchCamera(TUICallCameraPosition.FRONT); // 切换前置摄像头
558
+ */
559
+ FRONT = 0,
560
+ /**
561
+ * @description 摄像头类型 - 后置摄像头
562
+ * @memberOf module:TRTCCallCameraPosition
563
+ * @example
564
+ * tuiCallEngine.switchCamera(TUICallCameraPosition.BACK); // 切换后置摄像头
565
+ */
566
+ BACK = 1
567
+ }
568
+ declare enum AUDIO_PLAYBACK_DEVICE {
569
+ SPEAKER = 0,
570
+ EAR = 1
571
+ }
572
+ /**
573
+ * 接入侧需要的呼叫类型列表,详细如下:
574
+ * @memberof SDK
575
+ *
576
+ * @exports TUICallType
577
+ * @module TUICallType
578
+ */
579
+ declare const TUICallType: {
580
+ /**
581
+ * @description 通话类型 - 语音通话
582
+ * @memberOf module:TUICallType
583
+ * @example
584
+ * let onError = function(error) {
585
+ * console.log(error)
586
+ * };
587
+ * tuiCallEngine.call({userID: 'user1', type: TUICallType.AUDIO_CALL})
588
+ */
589
+ AUDIO_CALL: number;
590
+ /**
591
+ * @description 通话类型 - 视频通话
592
+ * @memberOf module:TUICallType
593
+ * @example
594
+ * let onError = function(error) {
595
+ * console.log(error)
596
+ * };
597
+ * tuiCallEngine.call({userID: 'user1', type: TUICallType.VIDEO_CALL})
598
+ */
599
+ VIDEO_CALL: number;
600
+ /**
601
+ * @description 设备类型 - 摄像头
602
+ * @memberOf module:TUICallType
603
+ * @example
604
+ * let onError = function(error) {
605
+ * console.log(error)
606
+ * };
607
+ * tuiCallEngine.getDeviceList(TUICallType.DEVCIED_CARMERA) // 获取摄像头列表
608
+ */
609
+ DEVCIED_CAMERA: string;
610
+ /**
611
+ * @description 设备类型 - 麦克风
612
+ * @memberOf module:TUICallType
613
+ * @example
614
+ * let onError = function(error) {
615
+ * console.log(error)
616
+ * };
617
+ * tuiCallEngine.getDeviceList(TUICallType.DEVCIED_CARMERA) // 获取麦克风列表
618
+ */
619
+ DEVCIED_MICROPHONES: string;
620
+ };
621
+ interface ILoginParams {
622
+ userID: string;
623
+ userSig: string;
624
+ assetsPath?: string;
625
+ }
626
+ declare enum CallEndReason {
627
+ UnKnown = 0,
628
+ Hangup = 1,
629
+ Reject = 2,
630
+ NoResponse = 3,
631
+ Offline = 4,
632
+ LineBusy = 5,
633
+ Canceled = 6,
634
+ OtherDeviceAccepted = 7,
635
+ OtherDeviceReject = 8,
636
+ EndByServer = 9
637
+ }
638
+
639
+ declare const VIDEO_ENCODER_MAP: any;
640
+
641
+ /**
642
+ * TUICallEngine 提供了 Call 的基本能力
643
+ * @class TUICallEngine
644
+ */
645
+ declare class TUICallEngine {
646
+ static className: string;
647
+ static instance: TUICallEngine | null;
648
+ private static isWasmReady;
649
+ private static sdkAppId;
650
+ private static userId;
651
+ private static userSig;
652
+ private static Module;
653
+ private _callEngineWASM;
654
+ private _logger;
655
+ private _logLevel;
656
+ private _uniqueLoginId;
657
+ private _isExternalTim;
658
+ private _excludeFromHistoryMessage;
659
+ private _localRenderFillMode;
660
+ private _remoteRenderFillMode;
661
+ private _callMediaType;
662
+ tim: any;
663
+ trtcCloud: TRTCCloud;
664
+ private _permission;
665
+ private _devices;
666
+ private _currentDevices;
667
+ private _isRegisterVirtualBackgroundModelFile;
668
+ private _isUseBasicBeautyPlugin;
669
+ constructor(options: ITUICallEngineOption);
670
+ static setModule(Module: any): void;
671
+ /**
672
+ * @private
673
+ * 调用 TUICallEngineWASM 的异步方法
674
+ * @param funcName
675
+ * @param args
676
+ */
677
+ private JSCallNativeFunctionPromise;
678
+ /**
679
+ * 创建 TUICallEngine 实例
680
+ * @memberof TUICallEngine
681
+ * @param {Object} options 配置
682
+ * @param {Number} options.SDKAppID - 云通信应用的 `SDKAppID`
683
+ * @param {ChatSDK=} options.tim - [TIM 实例](https://web.sdk.qcloud.com/im/doc/zh-cn/TIM.html)(选填)
684
+ * - tim 参数适用于业务中已存在 TIM 实例,需要传入保证 TIM 实例唯一性
685
+ * @example
686
+ * let options = {
687
+ * SDKAppID: 0, // 接入时需要将0替换为您的云通信应用的 SDKAppID
688
+ * // tim 参数适用于业务中已存在 TIM 实例,需要传入保证 TIM 实例唯一性
689
+ * tim: tim
690
+ * };
691
+ * let tuiCallEngine = TUICallEngine.createInstance(options);
692
+ */
693
+ static createInstance(options: ITUICallEngineOption): TUICallEngine;
694
+ static once(event: string, func: (...args: any[]) => void): void;
695
+ /**
696
+ * 销毁 TUICallEngine 实例
697
+ * - 注:SDK 会先 logout,然后释放资源
698
+ * @memberof TUICallEngine
699
+ * @returns {Promise}
700
+ */
701
+ destroyInstance(): Promise<void>;
702
+ /**
703
+ * 登录 TUICallEngine
704
+ * @param {object} options
705
+ * @param {number} options.sdkAppId sdkAppId <br>
706
+ * 在 [实时音视频控制台](https://console.cloud.tencent.com/trtc) 单击 **应用管理** > **创建应用** 创建新应用之后,即可在 **应用信息** 中获取 sdkAppId 信息。
707
+ * @param {string} options.userId 用户ID <br>
708
+ * 建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
709
+ * @param {string} options.userSig userSig 签名 <br>
710
+ * 计算 userSig 的方式请参考 [UserSig 相关](https://cloud.tencent.com/document/product/647/17275)。
711
+ * @returns {Promise<void>}
712
+ * @example
713
+ * // 登录 TUICallEngine
714
+ * await TUICallEngine.login({
715
+ * sdkAppId: 0, // 填写您申请的 sdkAppId
716
+ * userId: '', // 填写您业务对应的 userId
717
+ * userSig: '', // 填写服务器或本地计算的 userSig
718
+ * })
719
+ */
720
+ login(params: ILoginParams): Promise<void>;
721
+ /**
722
+ * 登出接口,登出后无法再进行拨打操作
723
+ * @memberof TUICallEngine
724
+ * @returns {Promise}
725
+ * @example
726
+ * await tuiCallEngine.logout();
727
+ */
728
+ logout(): Promise<void>;
729
+ /**
730
+ * C2C邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
731
+ * - 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
732
+ * @memberof TUICallEngine
733
+ * @param {Object} params - 拨打通话配置
734
+ * @param {String} params.userID 被邀请方 userID
735
+ * @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
736
+ * @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
737
+ * @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]。支持 v1.4.2+ 版本。
738
+ * @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息。支持 v1.4.2+ 版本。
739
+ * @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
740
+ * | name | Type | Description |
741
+ * | :--- | :--- | :--- |
742
+ * | title | string | 离线推送标题(选填) |
743
+ * | description | string | 离线推送内容(选填) |
744
+ * | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID(选填) |
745
+ * | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0)|
746
+ * @returns {Promise}
747
+ * @example
748
+ * await tuiCallEngine.call({userID: 'user1', type: 1});
749
+ */
750
+ call(params: ICallParam): Promise<any>;
751
+ /**
752
+ * IM群组邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
753
+ * 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
754
+ * @memberof TUICallEngine
755
+ * @param {Object} params - 群聊拨打通话配置
756
+ * @param {Array} params.userIDList 邀请列表
757
+ * @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
758
+ * @param {String} params.groupID IM 群组 ID
759
+ * @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
760
+ * @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
761
+ * @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
762
+ * @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
763
+ * | name | Type | Description |
764
+ * | :--- | :--- | :--- |
765
+ * | title | string | 离线推送标题(选填) |
766
+ * | description | string | 离线推送内容(选填) |
767
+ * | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
768
+ * | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
769
+ * @returns {Promise}
770
+ * @example
771
+ * await tuiCallEngine.groupCall({userIDList: ['user1', 'user2'], type: 1, groupID: 'IM群组 ID'});
772
+ */
773
+ groupCall(params: IGroupCallParam): Promise<any>;
774
+ /**
775
+ * 多人通话<br>
776
+ * 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
777
+ * @memberof TUICallEngine
778
+ * @param {Object} params - 群聊拨打通话配置
779
+ * @param {Array} params.userIDList 邀请列表
780
+ * @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
781
+ * @param {String=} params.chatGroupID IM 群组 ID
782
+ * @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
783
+ * @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
784
+ * @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
785
+ * @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
786
+ * | name | Type | Description |
787
+ * | :--- | :--- | :--- |
788
+ * | title | string | 离线推送标题(选填) |
789
+ * | description | string | 离线推送内容(选填) |
790
+ * | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
791
+ * | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
792
+ * @returns {Promise}
793
+ * @example
794
+ * await tuiCallEngine.calls({userIDList: ['user1', 'user2'], type: 1, chatGroupID: 'IM群组 ID'});
795
+ */
796
+ calls(params: ICallsParam): Promise<any>;
797
+ /**
798
+ * 当您作为被邀请方收到 TUICallEvent.INVITED 事件的回调时,可以调用该接口接听来电
799
+ * @memberof TUICallEngine
800
+ * @returns {Promise}
801
+ * @example
802
+ * tuiCallEngine.on(TUICallEvent.INVITED, () => {
803
+ * tuiCallEngine.accept().then(() => {
804
+ * //success
805
+ * }).catch(error => {
806
+ * console.warn('accept error:', error);
807
+ * });
808
+ * });
809
+ */
810
+ accept(): Promise<any>;
811
+ reject(): Promise<any>;
812
+ hangup(): Promise<any>;
813
+ /**
814
+ * IM群组邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
815
+ * 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
816
+ * @memberof TUICallEngine
817
+ * @param {Object} params - 群聊拨打通话配置
818
+ * @param {Array} params.userIDList 邀请列表
819
+ * @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
820
+ * @param {String} params.groupID IM 群组 ID
821
+ * @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
822
+ * @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
823
+ * @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
824
+ * @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
825
+ * | name | Type | Description |
826
+ * | :--- | :--- | :--- |
827
+ * | title | string | 离线推送标题(选填) |
828
+ * | description | string | 离线推送内容(选填) |
829
+ * | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
830
+ * | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
831
+ * @returns {Promise}
832
+ * @example
833
+ * await tuiCallEngine.groupCall({userIDList: ['user1', 'user2'], type: 1, groupID: 'IM群组 ID'});
834
+ */
835
+ inviteUser(params: IInviteUserParam): Promise<void>;
836
+ /**
837
+ * IM群组邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
838
+ * 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
839
+ * @memberof TUICallEngine
840
+ * @param {Object} params - 群聊拨打通话配置
841
+ * @param {Array} params.userIDList 邀请列表
842
+ * @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
843
+ * @param {String} params.groupID IM 群组 ID
844
+ * @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
845
+ * @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
846
+ * @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
847
+ * @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
848
+ * | name | Type | Description |
849
+ * | :--- | :--- | :--- |
850
+ * | title | string | 离线推送标题(选填) |
851
+ * | description | string | 离线推送内容(选填) |
852
+ * | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
853
+ * | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
854
+ * @returns {Promise}
855
+ * @example
856
+ * await tuiCallEngine.groupCall({userIDList: ['user1', 'user2'], type: 1, groupID: 'IM群组 ID'});
857
+ */
858
+ joinInGroupCall(params: IJoinInGroupCallParam): Promise<void>;
859
+ /**
860
+ * call 3.0 新增的 “中途加入” 接口
861
+ * @param params 入参
862
+ * @param {String} params.callId 当前通话的唯一 id
863
+ */
864
+ join(params: IJoinParam): Promise<void>;
865
+ openCamera(videoViewDomID: string, isFrontCamera?: boolean): Promise<void>;
866
+ closeCamera(): Promise<void>;
867
+ /**
868
+ * 切换前后置摄像头<br>
869
+ * **Note: v3.0.0+ 支持,且该接口仅在移动端使用生效。**
870
+ * @memberof TUICallEngine
871
+ * @param {TUICallCameraPosition} cameraPosition 摄像头类型
872
+ * - TUICallCameraPosition.FRONT 前置摄像头
873
+ * - TUICallCameraPosition.BACK 后置摄像头
874
+ * @example
875
+ * await tuiCallEngine.switchCamera(TUICallCameraPosition.FRONT); // 切换前置摄像头
876
+ * await tuiCallEngine.switchCamera(TUICallCameraPosition.BACK); // 切换后置摄像头
877
+ */
878
+ switchCamera(cameraPosition: TUICallCameraPosition): Promise<void>;
879
+ /**
880
+ * 设置视频分辨率
881
+ * @memberof TUICallEngine
882
+ * @param {String} profile 视频 profile
883
+ * | 视频 Profile | 分辨率(宽 x 高)|
884
+ * | :--- | :--- |
885
+ * | 480p | 640 x 480 |
886
+ * | 720p | 1280 x 720 |
887
+ * | 1080p | 1920 x 1080 |
888
+ * - iOS Safari 不支持采集 1080p
889
+ * - 由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近 Profile 对应的分辨率。
890
+ * - 默认使用 `480p`。
891
+ * @returns {Promise}
892
+ * @example
893
+ * const profile = '720p';
894
+ * // 设置视频质量为 720p
895
+ * tuiCallEngine.setVideoQuality(profile).then(() => {
896
+ * // success
897
+ * }).catch(error => {
898
+ * console.warn('setVideoQuality error:', error)
899
+ * });
900
+ */
901
+ setVideoQuality(profile: string): Promise<void>;
902
+ /**
903
+ * 设置用户视频画面的显示模式
904
+ * @param {IVideoRenderParam} params 显示参数
905
+ * @param {String} params.userID 用户 ID。**不传入 userID 时, 对所有预览进行显示模式设置(包括:本地预览和所有的远端预览)**
906
+ * @param {String} params.objectFit 视频画面显示模式。目前仅支持: 'contain' | 'cover' | 'fill'
907
+ * - contain 优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗,缩放后的视频四周会有一圈黑边。**v3.0.0 废弃**
908
+ * - cover 优先保证视窗被填满。视频尺寸等比缩放,直至整个视窗被视频填满。如果视频长宽与显示窗口不同,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。
909
+ * - fill 保证视窗被填满的同时保证视频内容全部显示,但是不保证视频尺寸比例不变。视频的宽高会被拉伸至和视窗尺寸一致。
910
+ * 播放视频流默认使用 cover 模式。
911
+ * @param {String} params.muted 是否需要 mute 声音, **v3.0.0 废弃**
912
+ * - 对于本地流,muted 默认为 true,防止播放从麦克风采集的声音。
913
+ * @param {TRTCVideoMirrorType} params.mirror 是否开启视频镜像预览
914
+ * @param {TRTCVideoRotation} params.rotation 视频画面旋转方向
915
+ * 注意
916
+ * - 对于本地音视频流,默认开启镜像预览。建议在使用前置摄像头时开启镜像,使用后置摄像头时关闭镜像。
917
+ * - 对于远端音视频流,默认关闭镜像预览。
918
+ * - 对于屏幕分享流,不支持开启镜像预览。
919
+ * - 该参数只对本地预览有效,推流是没有镜像效果的。
920
+ * @examples
921
+ * const params = {
922
+ * userID: '132',
923
+ * rotation: 0, // 旋转
924
+ * objectFit: 'contain',
925
+ * mirror: false,
926
+ * };
927
+ * await trtcCloud.setVideoRenderParams(params);
928
+ */
929
+ setVideoRenderParams(params: IVideoRenderParam): Promise<void>;
930
+ /**
931
+ * 打开麦克风,处于通话中的用户会收到 USER_AUDIO_AVAILABLE 回调
932
+ * @memberof TUICallEngine
933
+ * @returns {Promise}
934
+ * @example
935
+ * tuiCallEngine.openMicrophone().then(() => {
936
+ * // success
937
+ * }).catch(error => {
938
+ * console.warn('openMicrophone error:', error)
939
+ * });
940
+ */
941
+ openMicrophone(): Promise<void>;
942
+ /**
943
+ * 关闭麦克风,处于通话中的用户会收到 USER_AUDIO_AVAILABLE 回调
944
+ * @memberof TUICallEngine
945
+ * @returns {Promise}
946
+ * @example
947
+ * tuiCallEngine.closeMicrophone().then(() => {
948
+ * // success
949
+ * }).catch(error => {
950
+ * console.warn('closeMicrophone error:', error)
951
+ * });
952
+ */
953
+ closeMicrophone(): Promise<void>;
954
+ startRemoteView(params: IStartRemoteViewParam): Promise<void>;
955
+ /**
956
+ * 停止远端画面渲染
957
+ * @memberof TUICallEngine
958
+ * @param {Object} params - 渲染远端视频配置
959
+ * @param {String} params.userID 用户id
960
+ * @returns {Promise}
961
+ * @example
962
+ * let promise = tuiCallEngine.stopRemoteView({userID: 'user1'});
963
+ * promise.then(() => {
964
+ * //success
965
+ * }).catch(error => {
966
+ * console.warn('stopRemoteView error:', error)
967
+ * });
968
+ */
969
+ stopRemoteView(params: IStopRemoteViewParam): Promise<void>;
970
+ /**
971
+ * 开关/设置背景虚化<br>
972
+ * **Note: v3.0.5+ 支持,暂不支持 H5,后续支持。**
973
+ * @param {number} blurLevel 虚化等级, 0 - 表示关闭背景虚化。目前不支持 blurLevel 等级的设置,后续支持。使用时需要 blurLevel > 0
974
+ * @memberof TUICallEngine
975
+ * @returns {Promise}
976
+ * @example
977
+ * await tuiCallEngine.setBlurBackground(1);
978
+ */
979
+ setBlurBackground(blurLevel: number): Promise<void>;
980
+ /**
981
+ * 开关/设置图片背景虚化<br>
982
+ * **Note: v3.0.5+ 支持,暂不支持 H5,后续支持。**
983
+ * @param {string} imagePath 图片路径(可以是 url,也可以是相对路径)。imagePath = '' 表示关闭图片背景虚化
984
+ * @memberof TUICallEngine
985
+ * @returns {Promise}
986
+ * @example
987
+ * await tuiCallEngine.setVirtualBackground('https://xxx.png');
988
+ */
989
+ setVirtualBackground(imagePath: string): Promise<void>;
990
+ private _setVirtualBackground;
991
+ /**
992
+ * 开启/关闭 TUICallEngine 的多设备登录模式 (**尊享版套餐支持**)
993
+ * - **注意**:v2.1.1+ 才支持。
994
+ * @param {boolean} enable 开启、关闭多设备登录. 开启: true; 关闭: false; 默认: 关闭
995
+ * @returns {void}
996
+ * @example
997
+ * tuiCallEngine.enableMultiDeviceAbility(true);
998
+ */
999
+ enableMultiDeviceAbility(enable: boolean): void;
1000
+ /**
1001
+ * 设置当前用户基本信息(用户名、用户头像)
1002
+ *
1003
+ * @param {object} options
1004
+ * @param {string} options.nickName 用户名,必填
1005
+ * @param {string} options.avatar 用户头像,必填
1006
+ * App 管理员可以通过 [即时通信 IM 控制台 > 用户自定义字段](https://console.cloud.tencent.com/im/user-data) 新增自定义资料字段
1007
+ * 用户自定义字段生效以后,用户可以调用 setSelfInfo 接口设置自定义资料
1008
+ * @returns {Promise<void>}
1009
+ *
1010
+ * @example
1011
+ * // 设置当前用户用户名及用户头像
1012
+ * await TUICallEngine.setSelfInfo({
1013
+ * nickName: '', // 填写您的新用户名
1014
+ * avatar: '', // 填写您的新头像地址
1015
+ * })
1016
+ */
1017
+ setSelfInfo(options: {
1018
+ nickName: string;
1019
+ avatar: string;
1020
+ }): Promise<void>;
1021
+ /**
1022
+ * 支持 webrtc 的基础美颜
1023
+ * @param {TRTCBeautyStyle} style 磨皮算法,有“光滑”(TRTCBeautyStyleSmooth=0)和“自然”(TRTCBeautyStyleNature=1)两种算法, 默认为 TRTCBeautyStyleNature
1024
+ * @param {number} beautyLevel 美颜级别,取值范围 [0 - 9],0表示关闭,1 - 9值越大,效果越明显。
1025
+ * @param {number} whitenessLevel 美白级别,取值范围 [0 - 9],0表示关闭,1 - 9值越大,效果越明显。
1026
+ * @param {number} ruddinessLevel 红润级别,取值范围 [0 - 9],0表示关闭,1 - 9值越大,效果越明显。
1027
+ * @returns {Promise}
1028
+ * @example
1029
+ * import {} from '@trtc/call-engine-lite-js';
1030
+ * await setBeautyLevel({
1031
+ * type: TRTCBeautyStyle.TRTCBeautyStyleSmooth,
1032
+ * beautyLevel: 0.3,
1033
+ * whitenessLevel: 0.4,
1034
+ * ruddinessLevel: 0.5,
1035
+ * })
1036
+ */
1037
+ setBeautyLevel(params: IBeautyLevelParams): Promise<void>;
1038
+ /**
1039
+ * @memberof TUICallEngine
1040
+ * @description 设置日志级别,低于 level 的日志将不会输出。
1041
+ * @param {LOG_LEVEL} level - 日志级别
1042
+ * - 0 普通级别,日志量较多,接入时建议使用
1043
+ * - 1 主要级别,SDK 输出关键信息,默认日志等级
1044
+ * - 2 告警级别,SDK 只输出告警和错误级别的日志
1045
+ * - 3 错误级别,SDK 只输出错误级别的日志
1046
+ * - 4 无日志级别,SDK 将不打印任何日志
1047
+ * @example
1048
+ * tuiCallEngine.setLogLevel(0);
1049
+ */
1050
+ setLogLevel(level: LOG_LEVEL): void;
1051
+ /**
1052
+ * login() 方法的别名接口,参数一致
1053
+ * @memberof TUICallEngine
1054
+ * @returns {Promise}
1055
+ */
1056
+ init(params: ILoginParams): Promise<void>;
1057
+ /**
1058
+ * 监听 callEngine 的事件
1059
+ * @param event TUICallEvent
1060
+ * @param func function
1061
+ * @returns {void}
1062
+ * @example
1063
+ * const callEngine = new TUICallEngine();
1064
+ * callEngine.on(event, func);
1065
+ */
1066
+ on(event: TUICallEvent, callback: () => void, context: any): void;
1067
+ /**
1068
+ * 移除监听 callEngine 的事件
1069
+ * @param event TUICallEvent
1070
+ * @param func function
1071
+ * @returns {void}
1072
+ * @example
1073
+ * const callEngine = new TUICallEngine();
1074
+ * callEngine.off(event, func);
1075
+ */
1076
+ off(event: TUICallEvent, callback: () => void, context: any): void;
1077
+ /**
1078
+ * 获取 trtcCloud 实例
1079
+ * @returns {TRTCCloud} trtcCloud
1080
+ * web 端 trtcCloud 能力请查看:https://web.sdk.qcloud.com/trtc/webrtc/trtcCloud/doc/TRTCCloud.html
1081
+ *
1082
+ * @example
1083
+ * const callEngine = new TUICallEngine();
1084
+ * const trtcCloud = callEngine.getTRTCCloud();
1085
+ */
1086
+ getTRTCCloudInstance(): TRTCCloud;
1087
+ /**
1088
+ * 获取 tim 实例
1089
+ * @returns {TIM} tim
1090
+ * web 端 tim 能力请查看:https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html
1091
+ * @example
1092
+ */
1093
+ getTim(): ChatSDK;
1094
+ /**
1095
+ * 实验性接口
1096
+ * @private
1097
+ * @param jsonStr jason 字符串
1098
+ * @returns
1099
+ */
1100
+ callExperimentalAPI(jsonStr: string): Promise<any>;
1101
+ /**
1102
+ * 获取设备列表
1103
+ * @memberof TUICallEngine
1104
+ * @param {String} deviceType 设备类型
1105
+ * - 'camera' 摄像头
1106
+ * - 'microphones' 麦克风,后续废弃 'microphones'。v3.0.0+ 支持传入 'microphone'
1107
+ * - 'speaker' 扬声器,v3.0.0+ 才支持该参数
1108
+ * @example
1109
+ * tuiCallEngine.getDeviceList('camera').then((devices)=>{ // 获取摄像头列表
1110
+ * console.log(devices)
1111
+ * }).catch(error => {
1112
+ * console.warn('getDeviceList error:', error)
1113
+ * });
1114
+ */
1115
+ getDeviceList(deviceType: DEVICE_TYPE): Promise<TRTCDeviceInfo[]>;
1116
+ /**
1117
+ * 切换摄像头或麦克风设备
1118
+ * @memberof TUICallEngine
1119
+ * @param {ISwitchDeviceParams} params
1120
+ * @param {string} params.deviceType 需要切换的设备类型
1121
+ * - 'video' 摄像头, 后续废弃 'video'。v3.0.0+ 支持传入 'camera' 切换摄像头。
1122
+ * - 'audio' 麦克风, 后续废弃 'audio'。v3.0.0+ 支持传入 'microphone' 切换麦克风。
1123
+ * - 'speaker' 扬声器, v3.0.0+ 支持
1124
+ * @param {string} params.deviceId 需要切换的设备ID
1125
+ * - 摄像头设备标识通过 {@link TUICallEngine.getDeviceList getDeviceList('camera')} 获取。
1126
+ * - 麦克风设备标识通过 {@link TUICallEngine.getDeviceList getDeviceList('microphone')} 获取。
1127
+ * - 扬声器设备标识通过 {@link TUICallEngine.getDeviceList getDeviceList('speaker')} 获取。
1128
+ * @example
1129
+ * let promise = tuiCallEngine.switchDevice({deviceType: 'camera', deviceId: cameras[0].deviceId}) // 切换设备
1130
+ * promise.then(() => {
1131
+ * // success
1132
+ * }).catch(error => {
1133
+ * console.warn('switchDevice error:', error)
1134
+ * });
1135
+ */
1136
+ switchDevice(params: ISwitchDeviceParams): Promise<boolean>;
1137
+ private _updateCurrentDevice;
1138
+ /**
1139
+ * 当前通话类型切换
1140
+ * - 仅支持1v1通话过程中使用
1141
+ * - 失败监听 ERROR 事件,code: 60001
1142
+ * @memberof TUICallEngine
1143
+ * @param {String} newMediaType 通话类型
1144
+ * - 1 语音通话
1145
+ * - 2 视频通话
1146
+ * @example
1147
+ * tuiCallEngine.switchCallMediaType(1).then(() => { // 视频通话切换语音通话
1148
+ * // success
1149
+ * }).catch(error => {
1150
+ * console.warn('switchCallMediaType error:', error)
1151
+ * });
1152
+ */
1153
+ switchCallMediaType(newMediaType: number): Promise<void>;
1154
+ private _checkDevicePermission;
1155
+ private _getMediaDevicesAuth;
1156
+ private _releaseStream;
1157
+ private _handleMediaError;
1158
+ private _analyzeVideoRenderParams;
1159
+ private _handleTrtcCloudBindEvent;
1160
+ private _observerFunction;
1161
+ private _onDeviceUpdated;
1162
+ private _initLogger;
1163
+ getDevicePermission(): {
1164
+ audio: boolean;
1165
+ video: boolean;
1166
+ };
1167
+ private _setDevicePermission;
1168
+ }
1169
+
1170
+ export { AUDIO_PLAYBACK_DEVICE, CallEndReason, TUIAudioQuality, TUICallCameraPosition, TUICallEngine, TUICallEvent, TUICallType, TUICamera, TUIErrorCode, TUIKickedOutOfRoomReason, TUINetworkQuality, TUIResolutionMode, TUIRoomDeviceMangerEvents, TUIVideoQuality, VIDEO_ENCODER_MAP, TUICallEngine as default };
1171
+ export type { ILoginParams, TUIDeviceInfo, TUINetwork, TUIVideoEncoderParams };