TUICallKit API 简介
TUICallKit API 是音视频通话组件的含 UI 接口,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景,更详细的接入步骤,详情请参见 快速接入TUICallKit。
API 概览
API | 描述 |
初始化 TUICallKit | |
发起 1v1 通话 | |
发起群组通话 | |
设置用户的头像、昵称 | |
设置自定义来电铃声 | |
设置日志级别 | |
开启/关闭悬浮窗功能 | |
开启/关闭来电铃声 | |
加入群组中已有的音视频通话 | |
销毁 TUICallKit | |
获取 TUICallEngine 实例,v2.4.3+ 支持 |
API 详情
init
初始化 TUICallKit。
init({sdkAppID: 0, // 替换为您自己账号下的 SDKAppIduserID: 'jane', // 填写当前用的 userIDuserSig: 'xxxxxxxxxxxx',type:1,tim: null, // 如果您不需要 TIM 实例,可忽略})
参数如下表所示:
参数 | 类型 | 说明 | 是否必填 |
sdkAppID | Number | 是 | |
userID | String | 当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_) | 是 |
userSig | String | 是 | |
tim | ChatSDK | TIM 实例 | 否 |
这里详细介绍一下 init 中的几个参数:
userSig:使用步骤三中获取的 SecretKey 对 sdkAppID、userID 等信息进行加密,就可以得到 userSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务,更多信息请参见 如何计算及使用 UserSig。
tim 可以将外部的 tim 实例通过 init 透传给 callkit ,tim 参数适用于业务中已存在 TIM 实例,为保证 TIM 实例唯一性。
call
拨打电话(1v1 通话)。
call({userID: "jane",type: 1})
参数如下表所示:
参数 | 类型 | 含义 | 是否必填 |
userID | String | 被叫用户的 ID | 是 |
type | Number | 通话的媒体类型:1:语音通话 2:视频通话 | 是 |
roomID | Number | 数字房间号, 范围 [1, 2147483647] | 否 |
userData | String | 扩展字段: 用于在邀请信令中增加扩展信息 | 否 |
timeout | Number | 通话的超时时间,0 为不超时, 单位 s(秒)(选填) - 默认 30s | 否 |
Object | 自定义离线消息推送(选填) | 否 |
groupCall
发起群组通话。
groupCall({userIDList: ["jane", "mike", "tommy"],type: 1,groupID: "12345678"})
参数如下表所示:
参数 | 类型 | 含义 | 是否必填 |
userIDList | Array<String> | 目标用户的 userId 列表,示例:["jane", "mike", "tommy"] | 是 |
type | 是 | ||
groupID | String | 此次群组通话的群 ID | 是 |
roomID | Number | 数字房间号, 范围 [1, 2147483647] | 否 |
userData | String | 扩展字段: 用于在邀请信令中增加扩展信息 | 否 |
timeout | Number | 通话的超时时间,0 为不超时, 单位 s(秒)(选填) - 默认 30s | 否 |
Object | 自定义离线消息推送(选填) | 否 |
setSelfInfo
设置用户头像、昵称。
注意:
通话中使用该接口修改用户信息,UI 不会立即更新,需要等到下次通话才能看到变化。
setSelfInfo({ nickName: "xxx", avatar: "http://xxx" });
setSelfInfo('昵称', '头像地址');
参数如下表所示:
参数 | 类型 | 含义 |
nickName | String | 设置昵称 |
avatar | String | 头像地址 |
setCallingBell
设置自定义来电铃声。
这里仅限传入本地文件地址,需要确保该文件目录是应用可以访问的。
传入路径应为本地铃声文件的绝对地址。
如需恢复默认铃声,
filePath
传空即可。支持的铃声文件格式:
格式 | iOS | Android |
m4a | √ | √ |
mp3 | √ | √ |
wav | √ | √ |
aac | √ | √ |
setCallingBell("filePath")
参数如下表所示:
参数 | 类型 | 含义 |
filePath | String | 铃声地址 |
setLogLevel
设置日志级别,低于 level 的日志将不会输出。
setLogLevel(level)
参数如下表所示:
参数 | 值 | 含义 |
level | 0 | 普通级别,日志量较多,接入时建议使用 |
| 1 | release 级别,SDK 输出关键信息,生产环境时建议使用 |
| 2 | 告警级别,SDK 只输出告警和错误级别的日志 |
| 3 | 错误级别,SDK 只输出错误级别的日志 |
| 4 | 无日志级别,SDK 将不打印任何日志 |
enableFloatWindow
注意:
≥ v3.1.0 支持。
开启/关闭悬浮窗功能。
默认为
false
,通话界面左上角的悬浮窗按钮隐藏,设置为true
后显示。enableFloatWindow(enable?: Boolean)
enableMuteMode
注意:
≥ v3.1.2 支持。
开启/关闭来电铃声。
开启后,收到通话请求时,不会播放来电铃声。
try {await TUICallKitServer.enableMuteMode(enable: boolean)} catch (error: any) {alert(`[TUICallKit] Failed to call the enableMuteMode API. Reason: ${error}`);}
joinInGroupCall
注意:
≥ v3.1.2 支持。
加入群组中已有的音视频通话。
说明:
加入群组中已有的音视频通话前,需要提前创建或加入IM 群组,并且群组中已有用户在通话中,如果已经创建,请忽略。
try {const params = {type: 2, // 视频通话groupID: "xxx",roomID: 0,};await TUICallKitServer.joinInGroupCall(params);} catch (error: any) {alert(`[TUICallKit] Failed to call the enableMuteMode API. Reason: ${error}`);}
参数列表:
参数 | 类型 | 是否必填 | 含义 |
type | 是 | ||
groupID | string | 是 | 此次群组通话的群 ID |
roomID | number | 是 | 此次通话的音视频房间 ID |
destroyed
销毁 TUICallKit。
destroyed()
getTUICallEngineInstance
获取 TUICallEngine 实例。
注意:
v2.4.3+ 支持。
TUICallKitServer.getTUICallEngineInstance();
TUICallKit 类型定义
CallMediaType
CallMediaType 类型 | 描述 |
CallMediaType.AUDIO | 语音通话 |
CallMediaType.VIDEO | 视频通话 |
offlinePushInfo
参数 | 类型 | 是否必填 | 含义 |
offlinePushInfo.title | String | 否 | 离线推送标题(选填) |
offlinePushInfo.description | String | 否 | 离线推送内容(选填) |
offlinePushInfo.androidOPPOChannelID | String | 否 | 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID(选填) |
offlinePushInfo.extension | String | 否 | 离线推送透传内容(选填)(tsignaling 版本 ≥ 0.9.0) |