有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文将介绍如何在短时间内完成 TUICallKit 组件的接入,跟随本文档,您可以在10分钟内完成接入工作,并最终得到一个包含完备 UI 界面的音视频通话功能。

环境准备

Android 5.0(SDK API Level 21)及以上版本。
Gradle 4.2.1 及以上的版本。
Android 5.0 及以上的手机设备。

步骤一:开通服务

在使用腾讯云提供的音视频服务前,您需要前往控制台,为应用开通音视频服务。具体步骤请参见 开通服务。

步骤二:下载 TUICallKit 组件

Kotlin
Java
Github 中克隆/下载代码,然后拷贝 Android 目录下的 tuicallkit-kt 子目录到您当前工程中的 app 同一级目录中,如下图:



Github 中克隆/下载代码,然后拷贝 Android 目录下的 tuicallkit 子目录到您当前工程中的 app 同一级目录中,如下图:




步骤三:工程配置

1. 在工程根目录下找到settings.gradle(或settings.gradle.kts)文件,在其中增加如下代码,它的作用是将 步骤二 中下载的组件导入到您当前的项目中:
Kotlin
Java
settings.gradle
setting.gradle.kts
Kinclude ':tuicallkit-kt'
include(":tuicallkit-kt")
settings.gradle
setting.gradle.kts
Javainclude ':tuicallkit'
include(":tuicallkit")
2. 在 app 目录下找到 build.gradle(或build.gradle.kts) 文件,增加如下代码,它的作用是声明当前 app 对新加入的组件的依赖:
Kotlin
Java
build.gradle
build.gradle.kts
api project(':tuicallkit-kt')
api(project(":tuicallkit-kt"))
说明
TUICallKit 工程内部已经默认依赖:TRTC SDKIM SDKtuicallengine 以及公共库 tuicore,不需要开发者单独配置。如需进行版本升级,则修改tuicallkit-kt/build.gradle文件中的版本号即可。
build.gradle
build.gradle.kts
api project(':tuicallkit')
api(project(":tuicallkit"))
说明
TUICallKit 工程内部已经默认依赖:TRTC SDKIM SDKtuicallengine 以及公共库 tuicore,不需要开发者单独配置。如需进行版本升级,则修改tuicallkit/build.gradle文件中的版本号即可。
3. 由于我们在 SDK 内部使用了Java 的反射特性,需要将 SDK 中的部分类加入不混淆名单,因此需要您在 proguard-rules.pro 文件中添加如下代码:
-keep class com.tencent.** { *; }
注意
TUICallKit 会在内部帮助您动态申请相机、麦克风、读取存储权限等。如果因为您的业务问题需要删减,可以修改组件的AndroidManifest.xml文件。

步骤四:登录

在您的项目中添加如下代码,它的作用是通过调用 TUICore 中的相关接口完成 TUI 组件的登录。这个步骤异常关键,因为只有在登录成功后才能正常使用 TUICallKit 的各项功能,故请您耐心检查相关参数是否配置正确:
Kotlin
Java
TUILogin.login(this,
1400000001, // 请替换为步骤一取到的 SDKAppID
"denny", // 请替换为您的 UserID
"xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置
object : TUICallback() {
override fun onSuccess() {
}

override fun onError(errorCode: Int, errorMessage: String) {
}
})
}
TUILogin.login(context,
1400000001, // 请替换为步骤一取到的 SDKAppID
"denny", // 请替换为您的 UserID
"xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置
new TUICallback() {
@Override
public void onSuccess() {
Log.i(TAG, "login success");
}

@Override
public void onError(int errorCode, String errorMessage) {
Log.e(TAG, "login failed, errorCode: " + errorCode + " msg:" + errorMessage);
}
});
参数说明 这里详细介绍一下 login 函数中所需要用到的几个关键参数:
SDKAppID:在步骤一中的最后一步中您已经获取到,这里不再赘述。
UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
UserSig:使用 步骤一 的第3步中获取的 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台中的 辅助工具 生成一个临时可用的 UserSig。
更多信息请参见 如何计算及使用 UserSig
注意
这个步骤也是目前我们收到的开发者反馈最多的步骤,常见问题如下:
SDKAppID 设置错误,国内站的 SDKAppID 一般是以140开头的10位整数。
UserSig 被错配成了加密密钥(SecretKey),UserSig 是用 SecretKey 把 SDKAppID、UserID 以及过期时间等信息加密得来的,而不是直接把 SecretKey 配置成 UserSig。
UserID 被设置成“1”、“123”、“111”等简单字符串,由于 TRTC 不支持同一个 UserID 多端登录,所以在多人协作开发时,形如 “1”、“123”、“111” 这样的 UserID 很容易被您的同事占用,导致登录失败,因此我们建议您在调试的时候设置一些辨识度高的 UserID。
Github 中的示例代码使用了 genTestUserSig 函数在本地计算 UserSig 是为了更快地让您跑通当前的接入流程,但该方案会将您的 SecretKey 暴露在 App 的代码当中,这并不利于您后续升级和保护您的 SecretKey,所以我们强烈建议您将 UserSig 的计算逻辑放在服务端进行,并由 app 在每次使用 TUICallKit 组件时向您的服务器请求实时计算出的 UserSig。

步骤五:拨打您的第一通电话

主叫方与被叫方登录成功后,主叫方通过调用 TUICallKit 的 call 方法并指定通话类型和被叫方的 userId,就可以发起语音或者视频通话,被叫方此时就可接受到来电邀请。
Kotlin
Java
// 发起1对1视频通话(假设 UserID 为 mike)
TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video)
// 发起1对1视频通话(假设 UserID 为 mike)
TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video);



主叫方



被叫方

更多特性

悬浮窗

常见问题

如果您的接入和使用中遇到问题,请参见 常见问题

交流与反馈

如果您在使用过程中,有什么建议或者意见,可以在这里反馈:TUICallKit 产品反馈问卷,感谢您的反馈。
如果您是开发者,也欢迎您加入我们的 TUICallKit 技术交流平台 zhiliao,进行技术交流和产品沟通。