tencent cloud

文档反馈

最后更新时间:2024-04-26 14:30:52
    本文将介绍如何在短时间内完成 TUILiveKit 组件的接入,跟随本文档,您可以在10分钟内完成接入工作,并最终得到一个包含完备 UI 界面的直播功能。

    环境准备

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

    步骤一:开通服务

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

    步骤二:下载 TUILiveKit 组件

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

    步骤三:工程配置

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

    步骤四:登录

    在您的项目中添加如下代码,它的作用是通过调用 TUICore 中的相关接口完成 TUI 组件的登录。这个步骤异常关键,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,故请您耐心检查相关参数是否配置正确:
    Java
    //登录
    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:使用 开通服务 获取的 SDKSecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台左侧项目栏中的 UserSig 工具,创建一个临时可用的 UserSig。
    
    
    
    更多信息请参见 UserSig 相关

    步骤五:进入直播预览画面

    1、新建 app_activity_anchor.xml 文件。
    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/fl_container" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
    2、新建 AnchorActivity, 通过加载 TUILiveKit 的 TUILiveRoomAnchorFragment 页面,就可以拉起预览画面,点击“开始直播”即可发起在线视频直播。
    Java
    public class AnchorActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.app_activity_anchor); //主播的房间 ID
    String roomId = "123666";
    
    //在 Activity 中显示 主播预览页面,点击预览页面的开始直播按钮,即可发起在线视频直播
    FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); TUILiveRoomAnchorFragment anchorFragment = new TUILiveRoomAnchorFragment(roomId); fragmentTransaction.add(R.id.fl_container, anchorFragment); fragmentTransaction.commit(); } }
    
    
    
    视频直播预览画面
    
    
    
    视频直播中画面

    步骤六:观众进入直播间

    1、新建 app_activity_audience.xml 文件。
    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/fl_container" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
    2、新建 AudienceActivity, 通过加载 TUILiveKit 的 TUILiveRoomAudienceFragment 页面,进入直播间。
    Java
    public class AudienceActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.app_activity_audience); //主播的房间 ID
    String roomId = "123666"; FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); TUILiveRoomAudienceFragment audienceFragment = new TUILiveRoomAudienceFragment(roomId); fragmentTransaction.add(R.id.fl_container, audienceFragment); fragmentTransaction.commit(); } }
    
    
    
    视频直播间
    
    
    
    视频直播间

    更多特性

    弹幕
    礼物

    常见问题

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

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

    技术支持

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

    7x24 电话支持