TUICallKit

最近更新时间:2024-06-04 11:05:11

我的收藏

TUICallKit API 简介

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

API 概览

API
描述
init
初始化 TUICallKit。
call
发起 1v1 通话。
groupCall
发起群组通话。
设置用户的头像、昵称。
设置自定义来电铃声。
开启/关闭悬浮窗功能。
开启/关闭来电铃声。
加入群组中已有的音视频通话。
设置日志级别。
隐藏按钮,v3.2.9+ 支持。
设置本地用户通话界面背景图,v3.2.9+ 支持。
设置远端用户通话界面背景图,v3.2.9+ 支持。
destroyed
销毁 TUICallKit。

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
Number
通话的媒体类型:
1:语音通话
2:视频通话
groupID
String
此次群组通话的群 ID。
roomID
Number
数字房间号, 范围 [1, 2147483647]。
userData
String
扩展字段:用于在邀请信令中增加扩展信息。
timeout
Number
通话的超时时间,0 为不超时, 单位 s(秒)(选填) - 默认 30s
被叫需要在 30s 内处于登录状态,timeout 值才会有效,具体参见 timeout 字段设置无效
Object
自定义离线消息推送(选填)。

setSelfInfo

设置用户头像、昵称。
> v1.4.4
≤ v1.4.4
setSelfInfo({ nickName: "xxx", avatar: "http://xxx" });
setSelfInfo('昵称', '头像地址');
参数如下表所示:
参数
类型
含义
nickName
String
设置昵称。
avatar
String
头像地址。
注意:
通话中使用 setSelfInfo 接口修改用户信息,UI 不会立即更新,需要等到下次通话才能看到变化。

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

开启/关闭悬浮窗功能。TUICallKit SDK v3.1.0 版本开始支持。
默认为false,通话界面左上角的悬浮窗按钮隐藏,设置为 true 后显示。
enableFloatWindow(enable?: Boolean)

enableMuteMode

开启/关闭来电铃声。TUICallKit SDK v3.1.2 版本开始支持。
开启后,收到通话请求时,不会播放来电铃声。
try {
await TUICallKitServer.enableMuteMode(enable: boolean)
} catch (error: any) {
alert(`[TUICallKit] Failed to call the enableMuteMode API. Reason: ${error}`);
}

joinInGroupCall

加入群组中已有的音视频通话。TUICallKit SDK 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
Number
通话的媒体类型:
1:语音通话
2:视频通话
groupID
String
此次群组通话的群 ID。
roomID
Number
此次通话的音视频房间 ID。

hideFeatureButton

隐藏功能按钮,目前仅支持 摄像头,麦克风和切换前后置按钮。
注意:
v3.2.9+ 支持。
TUICallKitServer.hideFeatureButton(buttonName: FeatureButton);
参数列表:
参数
类型
是否必填
含义
buttonName
按钮名称。

setLocalViewBackgroundImage

设置本地用户通话背景。
注意:
v3.2.9+ 支持。
TUICallKitServer.setLocalViewBackgroundImage(url: string);
参数列表:
参数
类型
是否必填
含义
url
String
图片地址(支持本地路径和网络地址)。
注意:
如果使用网络地址,需要将网络地址添加到 request 合法域名。

setRemoteViewBackgroundImage

设置远端用户通话背景。
注意:
v3.2.9+ 支持。
TUICallKitServer.setRemoteViewBackgroundImage(userId: string, url: string);
参数列表:
参数
类型
是否必填
含义
userId
String
远端用户 userId,设置为 '*' 表示对所有远端用户生效。
url
String
图片地址(支持本地路径和网络地址)。
注意:
如果使用网络地址,需要将网络地址添加到 request 合法域名。

destroyed

销毁 TUICallKit。
destroyed()

offlinePushInfo

参数
类型
是否必填
含义
offlinePushInfo.title
String
离线推送标题(选填)。
offlinePushInfo.description
String
离线推送内容(选填)。
offlinePushInfo.androidOPPOChannelID
String
离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID(选填)。
offlinePushInfo.extension
String
离线推送透传内容(选填)(tsignaling 版本 >= 0.9.0)。

FeatureButton

FeatureButton 类型
描述
FeatureButton.Camera
摄像头按钮。
FeatureButton.Microphone
麦克风按钮。
FeatureButton.SwitchCamera
切换前后置摄像头按钮。