tencent cloud

文档反馈

最后更新时间:2024-05-24 18:35:11
    本文将介绍如何快速完成 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)文件,在其中增加如下代码,它的作用是将 步骤二 中下载的组件导入到您当前的项目中:
    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。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持