本文将介绍如何快速完成 TUICallKit 组件的接入,您将在 10 分钟内完成以下几个关键步骤,并最终得到一个包含完备 UI 界面的视频通话功能。
1v1 视频通话 | 群组通话 |
? ? ? | ? ? ? |
环境准备
Android 5.0(SDK API Level 21)及以上版本。
Gradle 4.2.1 及以上的版本。
Android 5.0 及以上的手机设备。
步骤一:开通服务
在使用便宜云服务器租用提供的音视频服务前,您需要前往控制台,为应用开通音视频服务。具体步骤详见 开通服务(TUICallKit)。开通服务后,请记录
SDKAppID
和SDKSecretKey
,在后续的步骤中会用到。步骤二:下载并导入组件
?
?
?步骤三:工程配置
1. 在工程根目录下找到
settings.gradle.kts(或settings.gradle)
文件,在其中增加如下代码,导入tuicallkit-kt
组件到项目中。include(":tuicallkit-kt")
include ':tuicallkit-kt'
2. 在 app 目录下找到
build.gradle.kts(或build.gradle)
文件,在dependencies
中增加如下代码,声明当前 app 对新加入的组件的依赖。dependencies {api(project(":tuicallkit-kt"))}
dependencies {api project(':tuicallkit-kt')}
说明
TUICallKit 工程内部已经默认依赖:
TRTC SDK
、IM SDK
、tuicallengine
以及公共库 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 提供的各项功能。
import com.tencent.qcloud.tuicore.TUILogin import com.tencent.qcloud.tuicore.interfaces.TUICallbackimport com.tencent.qcloud.tuikit.tuicallkit.debug.GenerateTestUserSig?class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)?// beginval userID = "denny" // 请替换为您的 UserIdval sdkAppID = 0 // 请替换为第一步在控制台得到的SDKAppIDval secretKey = "****" // 请替换为第一步在控制台得到的SecretKeyval 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);?//beginString userID = "denny"; // 请替换为您的UserIdint sdkAppID = 0; // 请替换为第一步在控制台得到的SDKAppIDString secretKey = "****"; // 请替换为第一步在控制台得到的SecretKeyString userSig = GenerateTestUserSig.genTestUserSig(userId, sdkAppId, secretKey);TUILogin.login(this, sdkAppId, userId, userSig, new TUICallback() {@Overridepublic void onSuccess() {}@Overridepublic void onError(int errorCode, String errorMessage) {}});//end } }
参数 | 类型 | 说明 |
userID | String | 客户根据自己的业务自定义用户 ID,只允许包含大小写英文字母(a-z A-Z)、数字(0-9)及下划线和连词符。 |
sdkAppID | int | |
secretKey | String | |
userSig | String | 一种安全保护签名,用于对用户进行登录鉴权认证,确认用户是否真实,阻止恶意攻击者盗用您的云服务使用权。 |
说明:
开发环境:如果您正在本地开发调试阶段,可以采用本地
GenerateTestUserSig.genTestSig
函数生成 userSig。该方法中 SDKSecretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的便宜云服务器租用流量。生产环境:如果您的项目要发布上线,请采用 服务端生成 UserSig 的方式。
步骤五:拨打您的第一通电话
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);
主叫方发起音频通话 | 被叫方收到音频通话请求 |
? ? ? | ? ? ? |
更多特性
?设置昵称、头像?
?界面定制?
?离线推送?
?群组通话?
?悬浮窗?
?美颜特效?
?自定义铃声?
?监听通话状态?
?云端录制?
常见问题
交流与反馈
如果您在使用过程中,有什么建议或者意见,可以在这里反馈:TUICallKit 产品反馈问卷,感谢您的反馈。
如果您是开发者,也欢迎您加入我们的 TUICallKit 技术交流平台 zhiliao,进行技术交流和产品沟通。