TUICallKit

最近更新时间:2024-08-22 10:03:52

我的收藏

TUICallKit API 简介

TUICallKit API 是音视频通话组件的含 UI 接口,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景,更详细的接入步骤,详情请参见 快速接入TUICallKit

API 概览

API
描述
init
初始化 TUICallKit
call
发起 1v1 通话
groupCall
发起群组通话
设置用户的头像、昵称
设置自定义来电铃声
设置日志级别
开启/关闭悬浮窗功能
开启/关闭来电铃声
加入群组中已有的音视频通话
destroyed
销毁 TUICallKit
获取 TUICallEngine 实例,v2.4.3+ 支持

API 详情

init

初始化 TUICallKit。
init({
sdkAppID: 0, // 替换为您自己账号下的 SDKAppId
userID: 'jane', // 填写当前用的 userID
userSig: 'xxxxxxxxxxxx',
type:1,
tim: null, // 如果您不需要 TIM 实例,可忽略
})
参数如下表所示:
参数
类型
说明
是否必填
sdkAppID
Number
您可以在实时音视频控制台 > 应用管理 > 应用信息中查看 SDKAppID
userID
String
当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)
userSig
String
腾讯云设计的一种安全保护签名,获取方式请参见:如何计算及使用 UserSig
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
被叫需要在 30s 内处于登录状态,timeout 值才会有效,具体参考 timeout 字段设置无效
Object
自定义离线消息推送(选填)

groupCall

发起群组通话。
groupCall({
userIDList: ["jane", "mike", "tommy"],
type: 1,
groupID: "12345678"
})
参数如下表所示:
参数
类型
含义
是否必填
userIDList
Array<String>
目标用户的 userId 列表,示例:["jane", "mike", "tommy"]
type
通话的媒体类型,参数值说明参见 CallMediaType 通话类型
groupID
String
此次群组通话的群 ID
roomID
Number
数字房间号, 范围 [1, 2147483647]
userData
String
扩展字段: 用于在邀请信令中增加扩展信息
timeout
Number
通话的超时时间,0 为不超时, 单位 s(秒)(选填) - 默认 30s
被叫需要在 30s 内处于登录状态,timeout 值才会有效,具体参考 timeout 字段设置无效
Object
自定义离线消息推送(选填)

setSelfInfo

设置用户头像、昵称。
注意:
通话中使用该接口修改用户信息,UI 不会立即更新,需要等到下次通话才能看到变化。
> v1.4.4
≤ v1.4.4
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 群组,并且群组中已有用户在通话中,如果已经创建,请忽略。
群组的创建详见:IM 群组管理,或者您也可以直接使用 IM TUIKIT,一站式集成聊天、通话等场景。
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
通话的媒体类型,参数值说明参见 CallMediaType 通话类型
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)