腾讯云音视频通话SDKTUICallEngine_音视频解决方案_同尘科技

音视频通话SDK 2年前 (2023-05-19) 浏览 115

TUICallEngine API 简介

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

API 概览

创建实例和事件回调

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

通话操作相关接口函数

API 描述
call 发起 1v1 通话
groupCall 发起群组通话
inviteUser 在群组通话中,邀请其他人加入
joinInGroupCall 主动加入当前的群组通话中
accept 接听通话
reject 拒绝通话
hangup 结束通话
switchCallMediaType 切换通话媒体类型,比如视频通话切音频通话

设备控制相关接口函数

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

其他接口函数

API 描述
setSelfInfo 设置用户的头像、昵称
setLogLevel 设置日志等级

API 详情

createInstance

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

 wx.$TUICallEngine = TUICallEngine.createInstance({        tim,        sdkAppID, });

说明

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

destroyInstance

销毁 TUICallEngine 的单例

TUICallEngine.destroyInstance();

on

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

let onError = function(error) {    console.log(error);}; wx.$TUICallEngine.on(EventCode, handler, context);

说明

参数 类型 说明
Eventlist String 事件表
handler Function 监听函数
context Any 当前执行上下文(this)

off

移除回调接口。

let onError = function(error) {    console.log(error);}; wx.$TUICallEngine.off(EventCode, handler, context);

说明

参数 类型 说明
EventCode String 事件表
handler Function 监听函数
context Object 当前执行上下文

login

登录接口。

const params = {    userID: 'john', // your userID    userSig: 'xxxx', // 'your userSig'};let promise = wx.$TUICallEngine.login(params);promise.then(() => {    //success}).catch(error => {    console.warn('login error:', error);});

参数如下表所示:

参数 类型 含义
userID String 当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)
userSig String 腾讯云设计的一种安全保护签名,获取方式请参考 如何计算UserSig。

logout

登出接口。

let promise = wx.$TUICallEngine.logout();promise.then(() => {    //success}).catch(error => {    console.warn('logout error:', error);});

call

C2C邀请通话,被邀请方会收到 TUICallEvent.INVITED 事件。注意 离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。

let promise = wx.$TUICallEngine.call({    userID: 'user1',     type: 1, });promise.then(() => {    //success}).catch(error => {    console.warn('call error:', error);});

参数如下表所示:

参数 类型 含义
userID String 被邀请方 userID
type Number 0-未知, 1-语音通话,2-视频通话

groupCall

IM 群组邀请通话,被邀请方会收到 EVENT.INVITED 事件。注意 离线推送仅适用于终端(Android 或 iOS),Web 和 微信小程序不支持。

let promise = wx.$TUICallEngine.groupCall({    userIDList: ['user1', 'user2'],     type: 1,     groupID: 'IM群组 ID', });promise.then(() => {    //success}).catch(error => {    console.warn('groupCall error:', error);});

参数如下表所示:

参数 类型 含义
userIDList Array 邀请列表
type Number 0-未知, 1-语音通话,2-视频通话
groupID String IM 群组
timeout String 超时时长(选填)
roomID String 房间 ID(选填)

inviteUser

邀请用户加入此次群组通话。使用场景:一个群组通话中的用户主动邀请其他人时使用。

const userIDList = ['jack', 'john'];const params = {    userIDList};wx.$TUICallEngine.inviteUser(params).then(() => {    // success}).catch(error => {    console.error('inviteUser error:', error);});

参数如下表所示:

参数 类型 含义
userIDList Array 目标用户的 userID 列表

joinInGroupCall

主动加入此次群组通话。使用场景:群组内用户主动加入此次群组通话使用。

const params = {    roomID: 123,    type: 1,    groupID: 111};wx.$TUICallEngine.joinInGroupCall(params).then(() => {    // success}).catch(error => {    console.error('joinInGroupCall error:', error);});

参数如下表所示:

参数 类型 含义
roomID Number 此次通话的音视频房间 ID,目前仅支持数字房间号,后续版本会支持字符串房间号
groupID String 此次群组通话的群 ID
type Number 通话的媒体类型,比如:1 – 语音通话,2 – 视频通话

accept

当您作为被邀请方收到 TUICallEvent.INVITED 事件的回调时,可以调用该接口接听来电。

wx.$TUICallEngine.on(TUICallEvent.INVITED, () => {    wx.$TUICallEngine.accept().promise.then(() => {        //success    }).catch(error => {        console.warn('accept error:', error);    });});

reject

拒绝当前通话,当您作为被叫收到 TUICallEvent.INVITED 的回调时,可以调用该函数拒绝来电。

wx.$TUICallEngine.on(TUICallEvent.INVITED, () => {    wx.$TUICallEngine.reject().then(() => {        //success    }).catch(error => {        console.warn('reject error:', error);    });});

hangup

挂断当前通话,当您处于通话中,可以调用该函数结束通话。当您处于通话中,可以调用该接口结束通话当未拨通时, 可用来取消通话

wx.$TUICallEngine.hangup().then(() => {     //success }).catch(error => {     console.warn('hangup error:', error); });

switchCallMediaType

当前通话类型切换。仅支持1v1通话过程中使用失败监听 ERROR 事件,code: 60001

// 1 表示语音通话;2 表示视频通话wx.$TUICallEngine.switchCallMediaType(2).then(() => {  //success}).catch(error => {  console.warn('switchCallMediaType error:', error);});

参数如下表所示:

参数 类型 含义
newMediaType Number 1-语音通话,2-视频通话

openCamera

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

wx.$TUICallEngine.openCamera().then(() => {    //success}).catch(error => {    console.warn('openCamera error:', error);});

closeCamera

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

wx.$TUICallEngine.closeCamera().then(() => {    //success}).catch(error => {    console.warn('closeCamara error:', error);});

switchCamera

切换前后摄像头。

wx.$TUICallEngine.switchCamera().then(() => {    //success}).catch(error => {    console.warn('openMicrophone error:', error);});

openMicrophone

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

wx.$TUICallEngine.openMicrophone().then(() => {    //success}).catch(error => {    console.warn('openMicrophone error:', error);});

closeMicrophone

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

wx.$TUICallEngine.closeMicrophone().then(() => {    //success}).catch(error => {    console.warn('closeMicrophone error:', error);});

selectAudioPlaybackDevice

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

wx.$TUICallEngine.selectAudioPlaybackDevice(AUDIO_PLAYBACK_DEVICE.EAR).then(() => {    //success}).catch(error => {    console.warn('closeMicrophone error:', error);});

参数如下表所示:

参数 类型 含义
type AUDIO_PLAYBACK_DEVICE speaker:扬声器,ear:听筒

setSelfInfo

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

wx.$TUICallEngine.setSelfInfo("昵称", "头像 URL").then(() => {    //success}).catch(error => {    console.warn('closeCamara error:', error);});

参数如下表所示:

参数 类型 含义
nickName String 设置昵称
avatar String 头像地址

setLogLevel

设置日志级别,低于 level 的日志将不会输出

wx.$TUICallEngine.setLogLevel(level)

参数如下表所示:

参数 含义
level 0 普通级别,日志量较多,接入时建议使用
1 release 级别,SDK 输出关键信息,生产环境时建议使用
2 告警级别,SDK 只输出告警和错误级别的日志
3 错误级别,SDK 只输出错误级别的日志
4 无日志级别,SDK 将不打印任何日志



对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?