腾讯云音视频通话SDKTUICallEngine_音视频解决方案_同尘科技
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折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?