1075 lines
42 KiB
TypeScript
1075 lines
42 KiB
TypeScript
import { ChatSDK } from '@tencentcloud/lite-chat/basic';
|
||
export { default as TIM, default as TencentCloudChat } from '@tencentcloud/lite-chat/basic';
|
||
import TRTCCloud from '@tencentcloud/trtc-component-wx';
|
||
export { default as TRTCCloud } from '@tencentcloud/trtc-component-wx';
|
||
|
||
declare enum TUIErrorCode {
|
||
ERR_FAILED = -1
|
||
}
|
||
/**
|
||
* **TUIRoomEngine 事件列表**<br>
|
||
* @namespace TUICallEvents
|
||
* @example
|
||
* import TUIRoomEngine, { TUICallEvents } from '@tencentcloud/tuiroom-engine-js';
|
||
* const roomEngine = new TUIRoomEngine();
|
||
* roomEngine.on(TUICallEvents.onError, (error) => {
|
||
* console.log('roomEngine.error', error);
|
||
* })
|
||
*/
|
||
declare enum TUICallEvent {
|
||
/**
|
||
* @description sdk内部发生了错误
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let onError = function(error) {
|
||
* console.log(error)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.ERROR, onError);
|
||
*/
|
||
ERROR = "onError",
|
||
/**
|
||
* @description SDK 进入 ready 状态时收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let onSDKReady = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.SDK_READY, onSDKReady);
|
||
*/
|
||
SDK_READY = "sdkReady",
|
||
/**
|
||
* @description 重复登陆,收到该回调说明被踢出房间
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleOnKickedOut = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.KICKED_OUT, handleOnKickedOut);
|
||
*/
|
||
KICKED_OUT = "onKickedOffLine",
|
||
/**
|
||
* @description userSig 过期事件
|
||
* @default 'onUserSigExpired'
|
||
* @event TUICallEvents#onUserSigExpired
|
||
* @example
|
||
* const roomEngine = new TUIRoomEngine();
|
||
* roomEngine.on(TUICallEvents.onUserSigExpired, () => {
|
||
* console.log('roomEngine.onUserSigExpired');
|
||
* });
|
||
*/
|
||
onUserSigExpired = "onUserSigExpired",
|
||
/**
|
||
* @description 表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。
|
||
* - **注意:支持 v1.4.6+ 版本**。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleOnCallBegin = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.ON_CALL_BEGIN, handleOnCallBegin);
|
||
*/
|
||
ON_CALL_BEGIN = "onCallBegin",
|
||
/**
|
||
* @description 收到通话请求的回调(仅被叫收到)
|
||
* - 注意:后续计划废弃, 建议使用 ON_CALL_RECEIVED 事件。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleNewInvitationReceived = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.INVITED, handleNewInvitationReceived);
|
||
*/
|
||
INVITED = "onInvited",
|
||
/**
|
||
* @description 收到通话请求的回调(仅被叫收到),您可以通过监听这个事件,来决定是否显示通话接听界面。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleOnCallReceived = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.ON_CALL_RECEIVED, handleOnCallReceived);
|
||
*/
|
||
ON_CALL_RECEIVED = "onCallReceived",
|
||
/**
|
||
* @description 如果有用户接听,那么会收到此回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleUserAccept = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.USER_ACCEPT, handleUserAccept);
|
||
*/
|
||
USER_ACCEPT = "onUserAccept",
|
||
/**
|
||
* @description 如果有用户同意进入通话,那么会收到此回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleUserEnter = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.USER_ENTER, handleUserEnter);
|
||
*/
|
||
USER_ENTER = "onUserJoin",
|
||
/**
|
||
* @description 如果有用户同意离开通话,那么会收到此回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleUserLeave = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.USER_LEAVE, handleUserLeave);
|
||
*/
|
||
USER_LEAVE = "onUserLeave",
|
||
/**
|
||
* @description 用户拒绝通话
|
||
* 1. 在C2C通话中,只有发起方会收到拒绝回调
|
||
* 例如 A 邀请 B、C 进入通话,B拒绝,A可以收到该回调,但C不行
|
||
* 2. 在IM群组通话中,所有被邀请人均能收到该回调
|
||
* 例如 A 邀请 B、C 进入通话,B拒绝,A、C均能收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleInviteeReject = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.REJECT, handleInviteeReject);
|
||
*/
|
||
REJECT = "onUserReject",
|
||
/**
|
||
* @description 邀请用户无应答
|
||
* 1. 在C2C通话中,只有发起方会收到无人应答的回调
|
||
* 例如 A 邀请 B、C 进入通话,B不应答,A可以收到该回调,但C不行
|
||
* 2. 在IM群组通话中,所有被邀请人均能收到该回调
|
||
* 例如 A 邀请 B、C 进入通话,B不应答,A、C均能收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleNoResponse = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.NO_RESP, handleNoResponse);
|
||
*/
|
||
NO_RESP = "onUserNoResponse",
|
||
/**
|
||
* @description 邀请方忙线
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleLineBusy = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.LINE_BUSY, handleLineBusy);
|
||
*/
|
||
LINE_BUSY = "onUserLineBusy",
|
||
/**
|
||
* @description 作为被邀请方会收到,收到该回调说明本次通话被取消了
|
||
* - **注意:废弃,推荐使用 ON_CALL_NOT_CONNECTED 事件**。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleCallingCancel = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.CALLING_CANCEL, handleCallingCancel);
|
||
*/
|
||
CALLING_CANCEL = "onCallingCancel",
|
||
/**
|
||
* @description 如果通话未建立,都会抛出该事件。您可以通过监听该事件来实现类似未接来电、重置 UI 状态等显示逻辑。
|
||
* - **注意:废弃,推荐使用 ON_CALL_NOT_CONNECTED 事件**。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleOnCallCanceled = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.ON_CALL_CANCELED, handleOnCallCanceled);
|
||
*/
|
||
ON_CALL_CANCELED = "onCallCancelled",
|
||
/**
|
||
* @description 收到该回调说明本次通话结束了
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleCallingEnd = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.ON_CALL_END, handleCallEnd);
|
||
*/
|
||
ON_CALL_END = "onCallEnd",
|
||
/**
|
||
* @private
|
||
* @description 收到该回调说明本次通话结束了
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleCallingEnd = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.CALL_END, handleCallingEnd);
|
||
*/
|
||
CALL_END = "onCallEnd",
|
||
/**
|
||
* @description 收到该回调说明本次通话结束了
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleCallingEnd = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.CALLING_END, handleCallingEnd);
|
||
*/
|
||
CALLING_END = "onCallEnd",
|
||
/**
|
||
* @description 远端用户开启/关闭了摄像头, 会收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleUserVideoChange = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.USER_VIDEO_AVAILABLE, handleUserVideoChange);
|
||
*/
|
||
USER_VIDEO_AVAILABLE = "onUserVideoAvailable",
|
||
/**
|
||
* @description 远端用户开启/关闭了麦克风, 会收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleUserAudioChange = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.USER_AUDIO_AVAILABLE, handleUserAudioChange);
|
||
*/
|
||
USER_AUDIO_AVAILABLE = "onUserAudioAvailable",
|
||
/**
|
||
* @description 远端用户说话音量调整, 会收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleUserVoiceVolumeChange = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.USER_VOICE_VOLUME, handleUserVoiceVolumeChange);
|
||
*/
|
||
USER_VOICE_VOLUME = "onUserVoiceVolumeChanged",
|
||
/**
|
||
* @description 群聊更新邀请列表收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleGroupInviteeListUpdate = function(event) {
|
||
* console.log(event)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.GROUP_CALL_INVITEE_LIST_UPDATE, handleGroupInviteeListUpdate);
|
||
*/
|
||
GROUP_CALL_INVITEE_LIST_UPDATE = "onGroupCallInviteeListUpdate",
|
||
/**
|
||
* @description 通话类型切换收到该回调
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleCallTypeChanged = function({oldCallType, newCallType}) {
|
||
* console.log(oldCallType, newCallType)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.CALL_TYPE_CHANGED, handleCallTypeChanged);
|
||
*/
|
||
CALL_TYPE_CHANGED = "onCallMediaTypeChanged",
|
||
/**
|
||
* @description 设备列表更新
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleDeviceUpdated = function({ microphoneList, cameraList, currentMicrophone, currentCamera}) {
|
||
* console.log(microphoneList, cameraList, currentMicrophone, currentCamera)
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.DEVICED_UPDATED, handleDeviceUpdated);
|
||
*/
|
||
DEVICED_UPDATED = "onDeviceUpdated",
|
||
/**
|
||
* @description 用户网络质量
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* let handleOnUserNetworkQualityChanged = function(event) {
|
||
* console.log(event.networkQualityList);
|
||
* };
|
||
* tuiCallEngine.on(TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED, handleOnUserNetworkQualityChanged);
|
||
*/
|
||
ON_USER_NETWORK_QUALITY_CHANGED = "onUserNetworkQualityChanged",
|
||
MESSAGE_SENT_BY_ME = "onMessageSentByMe",
|
||
/**
|
||
* @description 设备变更事件
|
||
* @default 'onDeviceChange'
|
||
* @event TUICallEvents#onDeviceChange
|
||
* @param {object} options
|
||
* @param {string} options.deviceId 设备 Id
|
||
* @param {any} options.type 设备类型
|
||
* @param {any} options.state 设备变更状态
|
||
* @example
|
||
* const roomEngine = new TUIRoomEngine();
|
||
* roomEngine.on(TUICallEvents.onDeviceChange, ({ deviceId, type, state }) => {
|
||
* console.log('roomEngine.onDeviceChange', deviceId, type, state);
|
||
* });
|
||
*/
|
||
onDeviceChange = "onDeviceChange",
|
||
/**
|
||
* @description 通话结束的回调,通话未接通的情况下,因为用户拒绝、忙线等原因导致的通话结束,都会回调该接口。
|
||
* - **注意:v3.0.0 + 支持**。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* tuiCallEngine.on(TUICallEvent.ON_CALL_NOT_CONNECTED, (event) => {
|
||
* console.log(event);
|
||
* });
|
||
*/
|
||
ON_CALL_NOT_CONNECTED = "onCallNotConnected",
|
||
/**
|
||
* @description 当一个多人通话发生邀请他人时, 处在该通话的所有人都会抛出该事件, userId 就是被邀请者
|
||
* - **注意:v3.0.0 + 支持**。
|
||
* @memberOf module:TUICallEvent
|
||
* @example
|
||
* tuiCallEngine.on(TUICallEvent.ON_USER_INVITING, (event) => {
|
||
* console.log(event);
|
||
* });
|
||
*/
|
||
ON_USER_INVITING = "onUserInviting"
|
||
}
|
||
declare enum CallMediaType {
|
||
UNKNOWN = 0,
|
||
AUDIO = 1,
|
||
VIDEO = 2
|
||
}
|
||
/**
|
||
* @property {String} ear 听筒
|
||
* @property {String} speaker 免提
|
||
*/
|
||
declare enum AudioPlayBackDevice {
|
||
EAR = "ear",
|
||
SPEAKER = "speaker"
|
||
}
|
||
declare enum CameraPosition {
|
||
FRONT = 0,
|
||
BACK = 1
|
||
}
|
||
declare enum IOSOfflinePushType {
|
||
APNs = 0,
|
||
VoIP = 1
|
||
}
|
||
declare enum LOG_LEVEL {
|
||
NORMAL = 0,
|
||
RELEASE = 1,
|
||
WARNING = 2,
|
||
ERROR = 3,
|
||
NONE = 4
|
||
}
|
||
|
||
/**
|
||
* TRTC 关键类型定义<br>
|
||
* @description 分辨率、质量等级等枚举和常量值的定义
|
||
*/
|
||
/**
|
||
* 视频分辨率<br>
|
||
* 此处仅定义了横屏分辨率,如果要使用360 × 640这样的竖屏分辨率,需要同时指定 TRTCVideoResolutionMode 为 Portrait。
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCVideoResolution {
|
||
TRTCVideoResolution_640_480 = 62,
|
||
TRTCVideoResolution_960_720 = 64,
|
||
TRTCVideoResolution_960_540 = 110,
|
||
TRTCVideoResolution_1280_720 = 112,
|
||
TRTCVideoResolution_1920_1080 = 114
|
||
}
|
||
/**
|
||
* 视频画面填充模式<br>
|
||
* 如果画面的显示分辨率不等于画面的原始分辨率,就需要您设置画面的填充模式:
|
||
* - TRTCVideoFillMode_Fill,图像铺满屏幕,超出显示视窗的视频部分将被截掉,所以画面显示可能不完整。
|
||
* - TRTCVideoFillMode_Fit,图像长边填满屏幕,短边区域会被填充黑色,但画面的内容肯定是完整的。
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCVideoFillMode {
|
||
TRTCVideoFillMode_Fill = 0,
|
||
TRTCVideoFillMode_Fit = 1
|
||
}
|
||
/**
|
||
* 画面渲染镜像类型<br>
|
||
* TRTC 的画面镜像提供下列设置模式
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCVideoMirrorType {
|
||
TRTCVideoMirrorType_Auto = 0,
|
||
TRTCVideoMirrorType_Enable = 1,
|
||
TRTCVideoMirrorType_Disable = 2
|
||
}
|
||
/**
|
||
* 美颜(磨皮)算法<br>
|
||
* TRTC SDK 内置了多种不同的磨皮算法,您可以选择最适合您产品定位的方案。
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCBeautyStyle {
|
||
TRTCBeautyStyleSmooth = 0,
|
||
TRTCBeautyStyleNature = 1
|
||
}
|
||
/**
|
||
* 设备信息<br>
|
||
* @param {String} deviceId - 设备PID,字符编码格式是UTF-8
|
||
* @param {String} deviceName - 设备名称,字符编码格式是UTF-8
|
||
* @param {String} kind - 设备类型,['videoinput' | 'audioinput']
|
||
* @param {String} deviceName - 设备名称,字符编码格式是UTF-8
|
||
*/
|
||
declare class TRTCDeviceInfo {
|
||
deviceId: string;
|
||
deviceName: string;
|
||
kind?: string;
|
||
label?: string;
|
||
groupId?: string;
|
||
constructor(deviceId?: string, deviceName?: string, kind?: string, label?: string, groupId?: string);
|
||
}
|
||
/**
|
||
* 视频编码参数<br>
|
||
* 该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)。
|
||
* @param {TRTCVideoResolution} videoResolution - 【字段含义】 视频分辨率<br>
|
||
* 【推荐取值】 <br>
|
||
* - 视频通话建议选择360 × 640及以下分辨率,resMode 选择 Portrait。<br>
|
||
* - 手机直播建议选择 540 × 960,resMode 选择 Portrait。<br>
|
||
* - Window 和 iMac 建议选择 640 × 360 及以上分辨率,resMode 选择 Landscape。
|
||
* 【特别说明】 TRTCVideoResolution 默认只能横屏模式的分辨率,例如640 × 360。<br>
|
||
* 如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如640 × 360结合 Portrait 则为360 × 640。<br>
|
||
* @param {Number} videoFps - 【字段含义】视频采集帧率<br>
|
||
* 【推荐取值】15fps 或 20fps,10fps 以下会有轻微卡顿感,5fps 以下卡顿感明显,20fps 以上的帧率则过于浪费(电影的帧率也只有 24fps)。<br>
|
||
* 【特别说明】很多 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分过于突出美颜功能的 Android 手机前置摄像头的采集帧率可能低于10fps。<br>
|
||
* @param {Number} videoBitrate - 【字段含义】视频上行码率<br>
|
||
* 【推荐取值】推荐设置请参考本文件前半部分 TRTCVideoResolution 定义处的注释说明<br>
|
||
* 【特别说明】码率太低会导致视频中有很多的马赛克<br>
|
||
*/
|
||
declare class TRTCVideoEncParam {
|
||
videoResolution: TRTCVideoResolution;
|
||
videoFps: number;
|
||
videoBitrate: number;
|
||
constructor(videoResolution?: TRTCVideoResolution, videoFps?: number, videoBitrate?: number);
|
||
}
|
||
/**
|
||
* 视频画面旋转方向<br>
|
||
* TRTC SDK 提供了对本地和远程画面的旋转角度设置 API,如下的旋转角度都是指顺时针方向的。
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCVideoRotation {
|
||
TRTCVideoRotation0 = 0,
|
||
TRTCVideoRotation90 = 1,
|
||
TRTCVideoRotation180 = 2,
|
||
TRTCVideoRotation270 = 3
|
||
}
|
||
/**
|
||
* 画面渲染参数<br>
|
||
* 您可以通过设置此参数来控制画面的旋转、填充、镜像模式
|
||
* @param {TRTCVideoRotation} rotation - 【字段含义】视频画面旋转方向
|
||
* @param {TRTCVideoFillMode} fillMode - 【字段含义】视频画面填充模式
|
||
* @param {TRTCVideoMirrorType} mirrorType - 【字段含义】画面渲染镜像类型
|
||
*/
|
||
declare class TRTCRenderParams {
|
||
rotation: TRTCVideoRotation;
|
||
fillMode: TRTCVideoFillMode;
|
||
mirrorType: TRTCVideoMirrorType;
|
||
constructor(rotation?: TRTCVideoRotation, fillMode?: TRTCVideoFillMode, mirrorType?: TRTCVideoMirrorType);
|
||
}
|
||
/**
|
||
* 网络质量<br>
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCQuality {
|
||
TRTCQuality_Unknown = 0,
|
||
TRTCQuality_Excellent = 1,
|
||
TRTCQuality_Good = 2,
|
||
TRTCQuality_Poor = 3,
|
||
TRTCQuality_Bad = 4,
|
||
TRTCQuality_Vbad = 5,
|
||
TRTCQuality_Down = 6
|
||
}
|
||
/**
|
||
* 4.1 Log 级别
|
||
* @enum {Number}
|
||
*/
|
||
declare enum TRTCLogLevel {
|
||
TRTCLogLevelVerbose = 0,
|
||
TRTCLogLevelDebug = 1,
|
||
TRTCLogLevelInfo = 2,
|
||
TRTCLogLevelWarn = 3,
|
||
TRTCLogLevelError = 4,
|
||
TRTCLogLevelFatal = 5,
|
||
TRTCLogLevelNone = 6
|
||
}
|
||
|
||
interface IPlayVideoOption {
|
||
rotation?: TRTCVideoRotation;
|
||
fillMode?: TRTCVideoFillMode;
|
||
mirrorType?: TRTCVideoMirrorType;
|
||
muted?: boolean;
|
||
}
|
||
interface IStartRemoteViewParam {
|
||
userID: string;
|
||
videoViewDomID: string;
|
||
options?: IPlayVideoOption;
|
||
}
|
||
interface IMediaDeviceAuth {
|
||
audio?: boolean;
|
||
video?: boolean;
|
||
isThrowVideoError?: boolean;
|
||
callMediaType?: CallMediaType;
|
||
}
|
||
interface IWxDeviceCheckParams {
|
||
microphone: boolean;
|
||
camera: boolean;
|
||
}
|
||
interface IBeautyLevelParams {
|
||
style: TRTCBeautyStyle;
|
||
beautyLevel: number;
|
||
whitenessLevel: number;
|
||
}
|
||
interface ITUICallEngineOption {
|
||
SDKAppID?: number;
|
||
sdkAppID?: number;
|
||
tim?: any;
|
||
callkitVersion?: string;
|
||
framework?: string;
|
||
isFromChat?: boolean;
|
||
language?: number;
|
||
component?: number;
|
||
isSharedInstance?: boolean;
|
||
scene?: string;
|
||
}
|
||
interface ICallParam {
|
||
userID: string;
|
||
type: CallMediaType;
|
||
timeout?: number;
|
||
offlinePushInfo?: IOfflinePushInfo;
|
||
roomID?: number;
|
||
strRoomID?: string;
|
||
userData?: string;
|
||
}
|
||
interface IGroupCallParam {
|
||
userIDList: string[];
|
||
type: CallMediaType;
|
||
groupID: string;
|
||
timeout?: number;
|
||
offlinePushInfo?: IOfflinePushInfo;
|
||
roomID?: number;
|
||
strRoomID?: string;
|
||
userData?: string;
|
||
}
|
||
interface IJoinInGroupCallParam {
|
||
type: CallMediaType;
|
||
groupID: string;
|
||
roomID: number;
|
||
strRoomID: string;
|
||
}
|
||
interface IInviteUserParam {
|
||
userIDList: string[];
|
||
offlinePushInfo?: IOfflinePushInfo;
|
||
timeout?: number;
|
||
userData?: string;
|
||
}
|
||
interface ICallsParam {
|
||
userIDList: string[];
|
||
type: CallMediaType;
|
||
chatGroupID?: string;
|
||
timeout?: number;
|
||
offlinePushInfo?: IOfflinePushInfo;
|
||
roomID?: number;
|
||
strRoomID?: string;
|
||
userData?: string;
|
||
}
|
||
interface IJoinParam {
|
||
callId: string;
|
||
}
|
||
interface IOfflinePushInfo {
|
||
title?: string;
|
||
description?: string;
|
||
androidOPPOChannelID?: string;
|
||
extension: string;
|
||
ignoreIOSBadge?: boolean;
|
||
iOSSound?: string;
|
||
androidSound?: string;
|
||
androidVIVOClassification?: number;
|
||
androidXiaoMiChannelID?: string;
|
||
androidFCMChannelID?: string;
|
||
androidHuaWeiCategory?: string;
|
||
isDisablePush?: boolean;
|
||
iOSPushType?: IOSOfflinePushType;
|
||
}
|
||
interface ILoginParams {
|
||
userID: string;
|
||
userSig: string;
|
||
assetsPath?: string;
|
||
}
|
||
interface IStopRemoteViewParam {
|
||
userID: string;
|
||
}
|
||
|
||
/**
|
||
* @param {string} callType
|
||
* @returns {boolean}
|
||
*/
|
||
declare function devicePermissions(callType: CallMediaType): Promise<unknown>;
|
||
|
||
/**
|
||
* 检测input类型是否为string
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {Boolean} true->string / false->not a string
|
||
*/
|
||
declare const isString: (input: any) => boolean;
|
||
declare const isObject: (input: any) => boolean;
|
||
/**
|
||
* 检测input类型是否为数组
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {Boolean} true->array / false->not an array
|
||
*/
|
||
declare const isArray: (input: any) => boolean;
|
||
/**
|
||
* Checks to see if a value is undefined
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {Boolean} true->input value is undefined
|
||
*/
|
||
declare const isUndefined: (input: any) => boolean;
|
||
/**
|
||
* 检测input类型是否为数组或者object
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {Boolean} true->input is an array or an object
|
||
*/
|
||
declare const isArrayOrObject: (input: any) => boolean;
|
||
/**
|
||
* 检测input类型是否为function
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {Boolean} true->input is a function
|
||
*/
|
||
declare const isFunction: (input: any) => boolean;
|
||
/**
|
||
* 检测input是否为Error的实例
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {Boolean} true->input is an instance of Error
|
||
*/
|
||
declare const isInstanceOfError: (input: any) => boolean;
|
||
/**
|
||
* Get the object type string
|
||
* @param {*} input 任意类型的输入
|
||
* @returns {String} the object type string
|
||
*/
|
||
declare const getType: (input: any) => string;
|
||
/**
|
||
* 序列化Error实例,只序列化Error实例的message和code属性(如果有的话)
|
||
* @param {Error} error Error实例
|
||
* @returns {String} 序列化后的内容
|
||
*/
|
||
declare const stringifyError: (error: any) => string;
|
||
declare function getValueType(value: any): string;
|
||
declare function safelyParse(data: any): any;
|
||
declare function generateRandomString(length: any): string;
|
||
/**
|
||
* 获取设备权限,查看当前是否有麦克风以及摄像头权限
|
||
* @param {Object} params - 参数对象
|
||
* @param {Boolean} params.microphone 麦克风权限
|
||
* @param {Boolean} params.camera 摄像头权限
|
||
*/
|
||
declare function deviceCheck(params: any): Promise<any>;
|
||
declare function appDeviceCheck(params: any): boolean;
|
||
declare function convertOfflinePushInfoToCIdentifier(offlinePushInfo?: {}): {
|
||
title: any;
|
||
desc: any;
|
||
extension: any;
|
||
is_disable_push: any;
|
||
ios_push_type: any;
|
||
android_push_type: any;
|
||
ignore_ios_badge: boolean;
|
||
android_vivo_classification: any;
|
||
};
|
||
|
||
/**
|
||
* TUICallEngine 提供了 Call 的基本能力
|
||
* @class TUICallEngine
|
||
*/
|
||
declare class TUICallEngine {
|
||
static className: string;
|
||
static instance: TUICallEngine | null;
|
||
private static isWasmReady;
|
||
private static sdkAppId;
|
||
private static userId;
|
||
private static Module;
|
||
private _callEngineWASM;
|
||
private _logger;
|
||
private _uniqueLoginId;
|
||
private _isExternalTim;
|
||
private _localRenderFillMode;
|
||
private _remoteRenderFillMode;
|
||
private _callMediaType;
|
||
tim: any;
|
||
trtcCloud: TRTCCloud;
|
||
private _permission;
|
||
constructor(options: ITUICallEngineOption);
|
||
static setModule(Module: any): void;
|
||
/**
|
||
* @private
|
||
* 调用 TUICallEngineWASM 的异步方法
|
||
* @param funcName
|
||
* @param args
|
||
*/
|
||
private JSCallNativeFunctionPromise;
|
||
/**
|
||
* 创建 TUICallEngine 实例
|
||
* @memberof TUICallEngine
|
||
* @param {Object} options 配置
|
||
* @param {Number} options.SDKAppID - 云通信应用的 `SDKAppID`
|
||
* @param {ChatSDK=} options.tim - [TIM 实例](https://web.sdk.qcloud.com/im/doc/zh-cn/TIM.html)(选填)
|
||
* - tim 参数适用于业务中已存在 TIM 实例,需要传入保证 TIM 实例唯一性
|
||
* @example
|
||
* let options = {
|
||
* SDKAppID: 0, // 接入时需要将0替换为您的云通信应用的 SDKAppID
|
||
* // tim 参数适用于业务中已存在 TIM 实例,需要传入保证 TIM 实例唯一性
|
||
* tim: tim
|
||
* };
|
||
* let tuiCallEngine = TUICallEngine.createInstance(options);
|
||
*/
|
||
static createInstance(options: ITUICallEngineOption): TUICallEngine;
|
||
static once(event: string, func: (...args: any[]) => void): void;
|
||
/**
|
||
* 销毁 TUICallEngine 实例
|
||
* - 注:SDK 会先 logout,然后释放资源
|
||
* @memberof TUICallEngine
|
||
* @returns {Promise}
|
||
*/
|
||
destroyInstance(): Promise<void>;
|
||
/**
|
||
* 登录 TUICallEngine
|
||
* @param {object} options
|
||
* @param {number} options.sdkAppId sdkAppId <br>
|
||
* 在 [实时音视频控制台](https://console.cloud.tencent.com/trtc) 单击 **应用管理** > **创建应用** 创建新应用之后,即可在 **应用信息** 中获取 sdkAppId 信息。
|
||
* @param {string} options.userId 用户ID <br>
|
||
* 建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
|
||
* @param {string} options.userSig userSig 签名 <br>
|
||
* 计算 userSig 的方式请参考 [UserSig 相关](https://cloud.tencent.com/document/product/647/17275)。
|
||
* @returns {Promise<void>}
|
||
* @example
|
||
* // 登录 TUICallEngine
|
||
* await TUICallEngine.login({
|
||
* sdkAppId: 0, // 填写您申请的 sdkAppId
|
||
* userId: '', // 填写您业务对应的 userId
|
||
* userSig: '', // 填写服务器或本地计算的 userSig
|
||
* })
|
||
*/
|
||
login(params: ILoginParams): Promise<void>;
|
||
/**
|
||
* 登出接口,登出后无法再进行拨打操作
|
||
* @memberof TUICallEngine
|
||
* @returns {Promise}
|
||
* @example
|
||
* await tuiCallEngine.logout();
|
||
*/
|
||
logout(): Promise<void>;
|
||
/**
|
||
* C2C邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
|
||
* - 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
|
||
* @memberof TUICallEngine
|
||
* @param {Object} params - 拨打通话配置
|
||
* @param {String} params.userID 被邀请方 userID
|
||
* @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
|
||
* @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
|
||
* @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]。支持 v1.4.2+ 版本。
|
||
* @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息。支持 v1.4.2+ 版本。
|
||
* @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
|
||
* | name | Type | Description |
|
||
* | :--- | :--- | :--- |
|
||
* | title | string | 离线推送标题(选填) |
|
||
* | description | string | 离线推送内容(选填) |
|
||
* | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID(选填) |
|
||
* | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0)|
|
||
* @returns {Promise}
|
||
* @example
|
||
* await tuiCallEngine.call({userID: 'user1', type: 1});
|
||
*/
|
||
call(params: ICallParam): Promise<any>;
|
||
/**
|
||
* IM群组邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
|
||
* 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
|
||
* @memberof TUICallEngine
|
||
* @param {Object} params - 群聊拨打通话配置
|
||
* @param {Array} params.userIDList 邀请列表
|
||
* @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
|
||
* @param {String} params.groupID IM 群组 ID
|
||
* @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
|
||
* @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
|
||
* @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
|
||
* @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
|
||
* | name | Type | Description |
|
||
* | :--- | :--- | :--- |
|
||
* | title | string | 离线推送标题(选填) |
|
||
* | description | string | 离线推送内容(选填) |
|
||
* | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
|
||
* | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
|
||
* @returns {Promise}
|
||
* @example
|
||
* await tuiCallEngine.groupCall({userIDList: ['user1', 'user2'], type: 1, groupID: 'IM群组 ID'});
|
||
*/
|
||
groupCall(params: IGroupCallParam): Promise<any>;
|
||
/**
|
||
* 多人通话<br>
|
||
* 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
|
||
* @memberof TUICallEngine
|
||
* @param {Object} params - 群聊拨打通话配置
|
||
* @param {Array} params.userIDList 邀请列表
|
||
* @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
|
||
* @param {String=} params.chatGroupID IM 群组 ID
|
||
* @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
|
||
* @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
|
||
* @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
|
||
* @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
|
||
* | name | Type | Description |
|
||
* | :--- | :--- | :--- |
|
||
* | title | string | 离线推送标题(选填) |
|
||
* | description | string | 离线推送内容(选填) |
|
||
* | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
|
||
* | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
|
||
* @returns {Promise}
|
||
* @example
|
||
* await tuiCallEngine.calls({userIDList: ['user1', 'user2'], type: 1, chatGroupID: 'IM群组 ID'});
|
||
*/
|
||
calls(params: ICallsParam): Promise<any>;
|
||
/**
|
||
* 当您作为被邀请方收到 TUICallEvent.INVITED 事件的回调时,可以调用该接口接听来电
|
||
* @memberof TUICallEngine
|
||
* @returns {Promise}
|
||
* @example
|
||
* tuiCallEngine.on(TUICallEvent.INVITED, () => {
|
||
* tuiCallEngine.accept().then(() => {
|
||
* //success
|
||
* }).catch(error => {
|
||
* console.warn('accept error:', error);
|
||
* });
|
||
* });
|
||
*/
|
||
accept(): Promise<any>;
|
||
reject(): Promise<any>;
|
||
hangup(): Promise<any>;
|
||
/**
|
||
* IM群组邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
|
||
* 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
|
||
* @memberof TUICallEngine
|
||
* @param {Object} params - 群聊拨打通话配置
|
||
* @param {Array} params.userIDList 邀请列表
|
||
* @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
|
||
* @param {String} params.groupID IM 群组 ID
|
||
* @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
|
||
* @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
|
||
* @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
|
||
* @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
|
||
* | name | Type | Description |
|
||
* | :--- | :--- | :--- |
|
||
* | title | string | 离线推送标题(选填) |
|
||
* | description | string | 离线推送内容(选填) |
|
||
* | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
|
||
* | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
|
||
* @returns {Promise}
|
||
* @example
|
||
* await tuiCallEngine.inviteUser({userIDList: ['user1', 'user2'], type: 1, groupID: 'IM群组 ID'});
|
||
*/
|
||
inviteUser(params: IInviteUserParam): Promise<void>;
|
||
/**
|
||
* IM群组邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件<br>
|
||
* 注意:离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。
|
||
* @memberof TUICallEngine
|
||
* @param {Object} params - 群聊拨打通话配置
|
||
* @param {Array} params.userIDList 邀请列表
|
||
* @param {Number} params.type 0-未知, 1-语音通话,2-视频通话
|
||
* @param {String} params.groupID IM 群组 ID
|
||
* @param {Number=} params.timeout 0为不超时, 单位 s(秒)(选填) - 默认 30s
|
||
* @param {Number=} params.roomID 数字房间号, 范围 [1, 2147483647]
|
||
* @param {String=} params.userData 扩展字段: 用于在邀请信令中增加扩展信息
|
||
* @param {Object=} params.offlinePushInfo - 自定义离线消息推送(选填)-- 需 tsignaling 版本 >= 0.8.0
|
||
* | name | Type | Description |
|
||
* | :--- | :--- | :--- |
|
||
* | title | string | 离线推送标题(选填) |
|
||
* | description | string | 离线推送内容(选填) |
|
||
* | androidOPPOChannelID | string | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID (选填) |
|
||
* | extension | string | 离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0) |
|
||
* @returns {Promise}
|
||
* @example
|
||
* await tuiCallEngine.groupCall({userIDList: ['user1', 'user2'], type: 1, groupID: 'IM群组 ID'});
|
||
*/
|
||
joinInGroupCall(params: IJoinInGroupCallParam): Promise<void>;
|
||
/**
|
||
* call 3.0 新增的 “中途加入” 接口
|
||
* @param params 入参
|
||
* @param {String} params.callId 当前通话的唯一 id
|
||
*/
|
||
join(params: IJoinParam): Promise<void>;
|
||
openCamera(videoViewDomID: string, isFrontCamera?: boolean): Promise<void>;
|
||
closeCamera(): Promise<void>;
|
||
/**
|
||
* 切换前后置摄像头<br>
|
||
* **Note: v3.0.0+ 支持,且该接口仅在移动端使用生效。**
|
||
* @memberof TUICallEngine
|
||
* @param {CameraPosition} cameraPosition 摄像头类型
|
||
* - CameraPosition.FRONT 前置摄像头
|
||
* - CameraPosition.BACK 后置摄像头
|
||
* @example
|
||
* await tuiCallEngine.switchCamera(CameraPosition.FRONT); // 切换前置摄像头
|
||
* await tuiCallEngine.switchCamera(CameraPosition.BACK); // 切换后置摄像头
|
||
*/
|
||
switchCamera(cameraPosition: CameraPosition): Promise<void>;
|
||
/**
|
||
* 打开麦克风,处于通话中的用户会收到 USER_AUDIO_AVAILABLE 回调
|
||
* @memberof TUICallEngine
|
||
* @returns {Promise}
|
||
* @example
|
||
* tuiCallEngine.openMicrophone().then(() => {
|
||
* // success
|
||
* }).catch(error => {
|
||
* console.warn('openMicrophone error:', error)
|
||
* });
|
||
*/
|
||
openMicrophone(): Promise<void>;
|
||
/**
|
||
* 关闭麦克风,处于通话中的用户会收到 USER_AUDIO_AVAILABLE 回调
|
||
* @memberof TUICallEngine
|
||
* @returns {Promise}
|
||
* @example
|
||
* tuiCallEngine.closeMicrophone().then(() => {
|
||
* // success
|
||
* }).catch(error => {
|
||
* console.warn('closeMicrophone error:', error)
|
||
* });
|
||
*/
|
||
closeMicrophone(): Promise<void>;
|
||
startRemoteView(params: IStartRemoteViewParam): Promise<void>;
|
||
/**
|
||
* 停止远端画面渲染
|
||
* @memberof TUICallEngine
|
||
* @param {Object} params - 渲染远端视频配置
|
||
* @param {String} params.userID 用户id
|
||
* @returns {Promise}
|
||
* @example
|
||
* let promise = tuiCallEngine.stopRemoteView({userID: 'user1'});
|
||
* promise.then(() => {
|
||
* //success
|
||
* }).catch(error => {
|
||
* console.warn('stopRemoteView error:', error)
|
||
* });
|
||
*/
|
||
stopRemoteView(params: IStopRemoteViewParam): Promise<void>;
|
||
/**
|
||
* 开启/关闭 TUICallEngine 的多设备登录模式 (**尊享版套餐支持**)
|
||
* - **注意**:v2.1.1+ 才支持。
|
||
* @param {boolean} enable 开启、关闭多设备登录. 开启: true; 关闭: false; 默认: 关闭
|
||
* @returns {void}
|
||
* @example
|
||
* tuiCallEngine.enableMultiDeviceAbility(true);
|
||
*/
|
||
enableMultiDeviceAbility(enable: boolean): void;
|
||
/**
|
||
* 设置当前用户基本信息(用户名、用户头像)
|
||
*
|
||
* @param {object} options
|
||
* @param {string} options.nickName 用户名,必填
|
||
* @param {string} options.avatar 用户头像,必填
|
||
* App 管理员可以通过 [即时通信 IM 控制台 > 用户自定义字段](https://console.cloud.tencent.com/im/user-data) 新增自定义资料字段
|
||
* 用户自定义字段生效以后,用户可以调用 setSelfInfo 接口设置自定义资料
|
||
* @returns {Promise<void>}
|
||
*
|
||
* @example
|
||
* // 设置当前用户用户名及用户头像
|
||
* await TUICallEngine.setSelfInfo(nickName: '', avatar: '')
|
||
*/
|
||
setSelfInfo(nickName: string, avatar: string): Promise<void>;
|
||
/**
|
||
* 支持 webrtc 的基础美颜
|
||
* @param {TRTCBeautyStyle} style 磨皮算法,有“光滑”(TRTCBeautyStyleSmooth=0)和“自然”(TRTCBeautyStyleNature=1)两种算法, 默认为 TRTCBeautyStyleNature
|
||
* @param {number} beautyLevel 美颜级别,取值范围 [0 - 9],0表示关闭,1 - 9值越大,效果越明显。
|
||
* @param {number} whitenessLevel 美白级别,取值范围 [0 - 9],0表示关闭,1 - 9值越大,效果越明显。
|
||
* @returns {Promise}
|
||
* @example
|
||
* import {} from 'call-engine-lite-js';
|
||
* await setBeautyLevel({
|
||
* type: TRTCBeautyStyle.TRTCBeautyStyleSmooth,
|
||
* beautyLevel: 0.3,
|
||
* whitenessLevel: 0.4,
|
||
* })
|
||
*/
|
||
setBeautyLevel(params: IBeautyLevelParams): Promise<void>;
|
||
/**
|
||
* @memberof TUICallEngine
|
||
* @description 设置日志级别,低于 level 的日志将不会输出。
|
||
* @param {LOG_LEVEL} level - 日志级别
|
||
* - 0 普通级别,日志量较多,接入时建议使用
|
||
* - 1 主要级别,SDK 输出关键信息,默认日志等级
|
||
* - 2 告警级别,SDK 只输出告警和错误级别的日志
|
||
* - 3 错误级别,SDK 只输出错误级别的日志
|
||
* - 4 无日志级别,SDK 将不打印任何日志
|
||
* @example
|
||
* tuiCallEngine.setLogLevel(0);
|
||
*/
|
||
setLogLevel(level: LOG_LEVEL): void;
|
||
/**
|
||
* login() 方法的别名接口,参数一致
|
||
* @memberof TUICallEngine
|
||
* @returns {Promise}
|
||
*/
|
||
init(params: ILoginParams): Promise<void>;
|
||
/**
|
||
* 监听 callEngine 的事件
|
||
* @param event TUICallEvent
|
||
* @param func function
|
||
* @returns {void}
|
||
* @example
|
||
* const callEngine = new TUICallEngine();
|
||
* callEngine.on(event, func);
|
||
*/
|
||
on(event: TUICallEvent, callback: () => void, context: any): void;
|
||
/**
|
||
* 移除监听 callEngine 的事件
|
||
* @param event TUICallEvent
|
||
* @param func function
|
||
* @returns {void}
|
||
* @example
|
||
* const callEngine = new TUICallEngine();
|
||
* callEngine.off(event, func);
|
||
*/
|
||
off(event: TUICallEvent, callback: () => void, context: any): void;
|
||
/**
|
||
* 获取 trtcCloud 实例
|
||
* @returns {TRTCCloud} trtcCloud
|
||
* web 端 trtcCloud 能力请查看:https://web.sdk.qcloud.com/trtc/webrtc/trtcCloud/doc/TRTCCloud.html
|
||
*
|
||
* @example
|
||
* const callEngine = new TUICallEngine();
|
||
* const trtcCloud = callEngine.getTRTCCloud();
|
||
*/
|
||
getTRTCCloudInstance(): TRTCCloud;
|
||
/**
|
||
* 获取 tim 实例
|
||
* @returns {TIM} tim
|
||
* web 端 tim 能力请查看:https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html
|
||
* @example
|
||
*/
|
||
getTim(): ChatSDK;
|
||
/**
|
||
* 实验性接口
|
||
* @private
|
||
* @param jsonStr jason 字符串
|
||
* @returns
|
||
*/
|
||
callExperimentalAPI(jsonStr: string): Promise<any>;
|
||
reportLog(logData: any): void;
|
||
/**
|
||
* 切换扬声器和听筒
|
||
*/
|
||
selectAudioPlaybackDevice(type: AudioPlayBackDevice): Promise<void>;
|
||
deviceCheck(params: IWxDeviceCheckParams): Promise<any>;
|
||
/**
|
||
* 当前通话类型切换
|
||
* - 仅支持1v1通话过程中使用
|
||
* - 失败监听 ERROR 事件,code: 60001
|
||
* @memberof TUICallEngine
|
||
* @param {String} newMediaType 通话类型
|
||
* - 1 语音通话
|
||
* - 2 视频通话
|
||
* @example
|
||
* tuiCallEngine.switchCallMediaType(1).then(() => { // 视频通话切换语音通话
|
||
* // success
|
||
* }).catch(error => {
|
||
* console.warn('switchCallMediaType error:', error)
|
||
* });
|
||
*/
|
||
switchCallMediaType(newMediaType: number): Promise<void>;
|
||
private _checkDevicePermission;
|
||
private _handleTrtcCloudBindEvent;
|
||
private _observerFunction;
|
||
private _initLogger;
|
||
getDevicePermission(): {
|
||
audio: boolean;
|
||
video: boolean;
|
||
};
|
||
}
|
||
|
||
export { AudioPlayBackDevice, CallMediaType, CameraPosition, IOSOfflinePushType, LOG_LEVEL, TRTCBeautyStyle, TRTCDeviceInfo, TRTCLogLevel, TRTCQuality, TRTCRenderParams, TRTCVideoEncParam, TRTCVideoFillMode, TRTCVideoMirrorType, TRTCVideoResolution, TRTCVideoRotation, TUICallEngine, TUICallEvent, TUIErrorCode, appDeviceCheck, convertOfflinePushInfoToCIdentifier, TUICallEngine as default, deviceCheck, devicePermissions, generateRandomString, getType, getValueType, isArray, isArrayOrObject, isFunction, isInstanceOfError, isObject, isString, isUndefined, safelyParse, stringifyError };
|
||
export type { IBeautyLevelParams, ICallParam, ICallsParam, IGroupCallParam, IInviteUserParam, IJoinInGroupCallParam, IJoinParam, ILoginParams, IMediaDeviceAuth, IOfflinePushInfo, IPlayVideoOption, IStartRemoteViewParam, IStopRemoteViewParam, ITUICallEngineOption, IWxDeviceCheckParams };
|