1.0.2 • Published 3 years ago

tuicall-engine-wxmini v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

TUICallEngine API 简介

TUICallEngine API 是音视频通话组件的无 UI 接口,如果 TUICallKit 的交互并不满足您的需求,您可以使用这套接口自己封装交互。 由于小程序开发的限制,需要先给live-pusher绑定事件,具体可以参照TUICallkit。

创建实例和事件回调

API描述
createInstance创建 TUICallEngine 实例(静态方法)
destroyInstance销毁 TUICallEngine 实例(静态方法)
on增加事件监听
off取消事件监听

通话操作相关接口函数

API描述
call发起 1v1 通话
accept接听通话
reject拒绝通话
hangup结束通话
switchCallMediaType切换通话媒体类型,比如视频通话切音频通话

设备控制相关接口函数

API描述
openCamera开启摄像头
closeCamera关闭摄像头
switchCamera切换前后摄像头
openMicrophone打开麦克风
closeMicrophone关闭麦克风
selectAudioPlaybackDevice选择音频播放设备(听筒/扬声器)

其他接口函数

API描述
setSelfInfo设置用户的头像、昵称

createInstance

创建 TUICallEngine 的单例(class上的static方法)

TUICallEngine.createInstance({
    sdkAppID:'xxxxxxx',
    tim,
})

说明

参数是否必传说明
sdkAppID必传SDKAppId是腾讯云用于区分客户的唯一标识
tim非必传TIM 是 IM Web SDK 的命名空间,提供了创建 SDK 实例的静态方法

destroyInstance

销毁 TUICallEngine 的单例(class上的static方法)

TUICallEngine.destroyInstance()

on

添加回调接口,您可以通过这个接听,监听TRTC相关的事件回调

on(EventCode, handler, context);

说明

参数类型说明
EventlistString事件表
handlerFunction监听函数
contextObject当前执行上下文

off

移除回调接口

off(EventCode, handler);

说明

参数类型说明
EventCodeString事件表
handlerFunction监听函数
contextObject当前执行上下文

call

C2C邀请通话,被邀请方会收到的回调,如果当前处于通话中,可以调用该函数以邀请第三方进入通话

call({
    userID:"xxxxxxx",
    type:MEDIA_TYPE.AUDIO
})

参数如下表所示:

参数类型含义
userIDString目标用户的userId
typeMEDIA_TYPE通话的媒体类型,AUDIO-语音通话,VIDEO-视频通话

accept

当您作为被邀请方收到的回调时,可以调用该函数接听来电

accept();

reject

当您作为被邀请方收到的回调时,可以调用该函数拒绝来电

reject();

hangup

当您处于通话中,可以调用该函数挂断通话 当您发起通话时,可用去了取消通话

hangup();

switchCallMediaType

切换通话媒体类型,比如视频通话切音频通话

switchCallMediaType(MEDIA_TYPE.VIDEO);
参数类型含义
typeMEDIA_TYPE通话的媒体类型,AUDIO-语音通话,VIDEO-视频通话

openCamera

您可以调用该函数开启摄像头

openCamera();

closeCamera

您可以调用该函数关闭摄像头,处于通话中的用户会收到回调

closeCamera();

switchCamera

切换前后摄像头

switchCamera();

openMicrophone

您可以调用该函数打开麦克风 处于通话中的用户会收到回调

openMicrophone();

closeMicrophone

您可以调用该函数关闭麦克风 处于通话中的用户会收到回调

closeMicrophone();

selectAudioPlaybackDevice

选择音频播放设备,目前支持听筒、扬声器,在通话场景中,可以使用这个接口来开启/关闭免提模式。

selectAudioPlaybackDevice(AUDIO_PLAYBACK_DEVICE.EAR);

参数如下表所示:

参数类型含义
typeAUDIO_PLAYBACK_DEVICEspeaker:扬声器 ear:听筒

setSelfInfo

设置用户头像、昵称的接口

setSelfInfo('xxxxxxx','头像.png') ;

参数如下表所示:

参数类型含义
nickNameString设置昵称
avatarString头像地址

事件表

事件名说明
INVITED被邀请通话
USER_ACCEPT用户接听
USER_ENTER用户进入通话
USER_LEAVE用户离开通话
USER_UPDATE用户更新
REJECT用户拒绝通话
NO_RESP用户无响应
LINE_BUSY用户忙线
CALLING_CANCEL通话被取消
CALLING_TIMEOUT通话超时未应答
CALL_END通话结束
SDK_READYSDK Ready 回调
KICKED_OUT被踢下线
CALL_MODE切换通话模式

INVITED

被邀请通话

let handleNewInvitationReceived=function(event){
    console.log('被邀请通话')
  }
tuiCallEngine.on(EVENT.INVITED, this.handleNewInvitationReceived, this);

USER_ACCEPT

用户接听

let handleUserAccept=function(event) {
    console.log('用户接听')
}
tuiCallEngine.on(EVENT.USER_ACCEPT, this.handleUserAccept, this);

USER_ENTER

用户进入通话

let handleUserEnter=function(event) {
    console.log('用户进入通话')
}
tuiCallEngine.on(EVENT.USER_ENTER, this.handleUserEnter, this);

USER_LEAVE

用户离开通话

let handleUserLeave=function(event) {
    console.log('用户离开通话')
}
tuiCallEngine.on(EVENT.USER_LEAVE, this.handleUserLeave, this);

USER_UPDATE

用户更新

let handleUserUpdate=function(event) {
    console.log('用户更新')
}
tuiCallEngine.on(EVENT.USER_UPDATE, this.handleUserUpdate, this)

REJECT

用户拒绝通话

let handleInviteeReject=function(event) {
    console.log('用户拒绝通话')
}
tuiCallEngine.on(EVENT.REJECT, this.handleInviteeReject, this);

NO_RESP

用户无响应

let handleNoResponse=function(event) {
    console.log('用户无响应')
}
tuiCallEngine.on(EVENT.NO_RESP, this.handleNoResponse, this);

LINE_BUSY

用户忙线

let handleLineBusy=function(event) {
    console.log('用户忙线')
}
tuiCallEngine.on(EVENT.LINE_BUSY, this.handleLineBusy, this);

CALLING_CANCEL

通话被取消

let handleCallingCancel=function(event) {
    console.log('通话被取消')
}
tuiCallEngine.on(EVENT.CALLING_CANCEL, this.handleCallingCancel, this);

CALLING_TIMEOUT

通话超时未应答

let handleCallingTimeout=function(event) {
    console.log('通话超时未应答')
}
tuiCallEngine.on(EVENT.CALLING_TIMEOUT, this.handleCallingTimeout, this);

CALL_END

通话结束

let handleCallingEnd=function(event) {
    console.log('通话结束')
}
tuiCallEngine.on(EVENT.CALL_END, this.handleCallingEnd, this);

SDK_READY

SDK Ready 回调

let handleSDKReady=function(event) {
    console.log('SDK Ready 回调')
}
tuiCallEngine.on(EVENT.SDK_READY, this.handleSDKReady, this);

KICKED_OUT

被踢下线

let handleKickedOut=function(event) {
    console.log('被踢下线')
}
tuiCallEngine.on(EVENT.KICKED_OUT, this.handleKickedOut, this);

CALL_MODE

切换通话模式

let handleCallMode=function(event) {
    console.log('切换通话模式')
}
tuiCallEngine.on(EVENT.CALL_MODE, this.handleCallMode, this);

通话的类型

MEDIA_TYPE说明
AUDIO音频
VIDEO视频

声音的播放设备

AUDIO_PLAYBACK_DEVICE说明
EAR听筒
SPEAKER扬声器

通话中的事件处理

事件名说明
_pusherNetStatuspusher 的网络状况
_playNetStatusplayer 的网络状况
_pusherStateChangeHandlerlive-pusher 改变状态事件处理
_pusherAudioVolumeNotifylive-pusher 麦克风采集的音量大小事件处理
_playerStateChangelive-player 状态事件处理
_playerAudioVolumeNotifylive-player 麦克风采集的音量大小事件处理
_pusherAudioHandler订阅 / 取消订阅 Audio
_pusherVideoHandler订阅 / 取消订阅 Video