集成

本文将介绍如何快速完成 TUICallKit 组件的接入,您将在 10 分钟内完成以下几个关键步骤,并最终得到一个包含完备 UI 界面的视频通话功能。
1v1 视频通话
群组通话







环境准备

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

步骤一:开通服务

在使用腾讯云提供的音视频服务前,您需要前往控制台,为应用开通音视频服务。具体步骤详见 开通服务(TUICallKit)。开通服务后,请记录SDKAppIDSDKSecretKey,在后续的步骤中会用到。

步骤二:下载并导入组件

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




步骤三:工程配置

1. 在工程根目录下找到settings.gradle.kts(或settings.gradle)文件,在其中增加如下代码,导入tuicallkit-kt组件到项目中。
setting.gradle.kts
settings.gradle
include(":tuicallkit-kt")
include ':tuicallkit-kt'
2. 在 app 目录下找到 build.gradle.kts(或build.gradle) 文件,在dependencies 中增加如下代码,声明当前 app 对新加入的组件的依赖。
build.gradle.kts
build.gradle
dependencies {
api(project(":tuicallkit-kt"))
}
dependencies {
api project(':tuicallkit-kt')
}
说明
TUICallKit 工程内部已经默认依赖:TRTC SDKIM SDKtuicallengine 以及公共库 tuicore,不需要开发者单独配置。如需进行版本升级,则修改tuicallkit-kt/build.gradle文件中的版本号即可。
3. 由于我们在 SDK 内部使用了Java 的反射特性,需要将 SDK 中的部分类加入不混淆名单,因此需要您在 app 目录下的 proguard-rules.pro 文件末尾添加如下代码。添加完后,点击右上角的“Sync Now”,同步代码。
-keep class com.tencent.** { *; }
4. 在 app目录下找到AndroidManifest.xml 文件,在 application 节点中添加 tools:replace="android:allowBackup" ,覆盖组件内的设置,使用自己的设置。
// app/src/main/AndroidManifest.xml
<application android:name=".DemoApplication" android:allowBackup="false" android:icon="@drawable/app_ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:theme="@style/AppTheme" tools:replace="android:allowBackup">
5. 建议您编译并运行一次。如果遇到问题,建议您尝试运行我们的 Github demo 项目。通过比对,您可以找出潜在的区别并解决遇到的问题。在接入和使用过程中,如果遇到问题,欢迎向我们反馈

步骤四:登录 TUI 组件

在您的项目中添加如下代码,它的作用是通过调用 TUICore 中的相关接口完成 TUI 组件的登录。这一步骤至关重要,只有在成功登录之后,您才能正常使用 TUICallKit 提供的各项功能。
Kotlin
Java
import com.tencent.qcloud.tuicore.TUILogin import com.tencent.qcloud.tuicore.interfaces.TUICallback
import com.tencent.qcloud.tuikit.tuicallkit.debug.GenerateTestUserSig

class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)

// begin
val userID = "denny" // 请替换为您的 UserId
val sdkAppID = 0 // 请替换为第一步在控制台得到的SDKAppID
val secretKey = "****" // 请替换为第一步在控制台得到的SecretKey
val userSig = GenerateTestUserSig.genTestUserSig(userId, sdkAppId, secretKey)
TUILogin.login(this, sdkAppId, userId, userSig, object : TUICallback() {
override fun onSuccess() {
}
override fun onError(errorCode: Int, errorMessage: String) {
}
})
// end } }
import com.tencent.qcloud.tuicore.TUILogin; import com.tencent.qcloud.tuicore.interfaces.TUICallback;
import com.tencent.qcloud.tuikit.tuicallkit.debug.GenerateTestUserSig;

public class MainActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

//begin
String userID = "denny"; // 请替换为您的UserId
int sdkAppID = 0; // 请替换为第一步在控制台得到的SDKAppID
String secretKey = "****"; // 请替换为第一步在控制台得到的SecretKey
String userSig = GenerateTestUserSig.genTestUserSig(userId, sdkAppId, secretKey);
TUILogin.login(this, sdkAppId, userId, userSig, new TUICallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(int errorCode, String errorMessage) {
}
});
//end } }
参数
类型
说明
userID
String
客户根据自己的业务自定义用户 ID,只允许包含大小写英文字母(a-z A-Z)、数字(0-9)及下划线和连词符。
sdkAppID
int
Tencent RTC 控制台 创建的音视频应用的唯一标识 SDKAppID。
secretKey
String
Tencent RTC 控制台 创建的音视频应用的 SDKSecretKey。
userSig
String
一种安全保护签名,用于对用户进行登录鉴权认证,确认用户是否真实,阻止恶意攻击者盗用您的云服务使用权。
说明:
开发环境:如果您正在本地开发调试阶段,可以采用本地 GenerateTestUserSig.genTestSig函数生成 userSig。该方法中 SDKSecretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。
生产环境:如果您的项目要发布上线,请采用 服务端生成 UserSig 的方式。

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

在上述登录方法调用返回成功后,调用TUICallKit 的 call 方法,指定被叫方的 userID 和通话类型,发起音视频通话,被叫方可接收到来电邀请。
Kotlin
Java
import com.tencent.qcloud.tuikit.tuicallengine.TUICallDefine import com.tencent.qcloud.tuikit.tuicallkit.TUICallKit

// 发起1对1语音通话(假设被叫方的 userID 为 mike)
TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Audio)
import com.tencent.qcloud.tuikit.tuicallengine.TUICallDefine; import com.tencent.qcloud.tuikit.tuicallkit.TUICallKit;

// 发起1对1语音通话(假设被叫方的 userID 为 mike)
TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Audio);
主叫方发起音频通话
被叫方收到音频通话请求







更多特性

悬浮窗

常见问题

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

交流与反馈

如果有任何需要或者反馈,您可以联系:info_rtc@tencent.com。