You need to enable JavaScript to run this app.
导航
Android
最近更新时间:2024.12.04 11:18:29首次发布时间:2022.01.17 10:33:21

本章节介绍 Android 推/拉流 SDK 的支持系统、开发环境和集成方式。根据如下步骤进行操作,即可完成 Android 推/拉流 SDK 集成工作。

开发环境要求

  • Android 4.3 及以上系统;
  • armv7a、arm64 架构。

前提条件

集成 SDK

直播支持在线集成和离线集成 2 种 SDK 集成方法。

  • 在线集成:使用构建工具 Gradle 自动加载;
  • 离线集成:手动下载 aar,再将其导入您当前的工程项目。您可通过提交工单联系技术支持,了解离线集成的具体步骤。

本文介绍在线集成的具体步骤。

Step 1:配置 Maven 仓库

在根目录的 build.gradle 中配置 Maven 仓库,自动下载更新推/拉流 SDK。

  1. 打开根目录下的 build.gradle。

  2. 定义 Maven 仓库。并配置仓库服务器的 URL。URL 为 https://artifact.bytedance.com/repository/Volcengine/。集成代码示例如下所示。

    allprojects {
        repositories {
            google()
            mavenCentral()
            maven {
                url "https://artifact.bytedance.com/repository/Volcengine/" // volc public maven repo
            }
        }
    }
    
    apply from: 'https://ve-vos.volccdn.com/script/vevos-repo-base.gradle'
    

Step 2:配置环境和依赖

  1. 打开主工程下的 build.gradle。

  2. 在 defaultConfig 中配置 App 使用的 CPU 架构。支持 armv7a 和 arm64 架构。

  3. 在依赖 dependencies 中添加 TTSDK 的在线集成地址。

    android {
       defaultConfig {
           ndk {
               //设置 SO 库架构,支持 armv7a 和 arm64 架构。
               abiFilters 'armeabi-v7a', 'arm64-v8a'
            }
       }
    }
    
    dependencies {
        ......
       //添加 TTSDK 在线集成地址,推荐使用最新稳定版,获取方式请参考[SDK 下载]章节
       //普通直播功能(不包含 RTM 推拉流或连麦功能)
       implementation 'com.bytedanceapi:ttsdk-ttlivepush:x.x.x.x'
       implementation 'com.bytedanceapi:ttsdk-ttlivepull:x.x.x.x'
       
        //添加第三方依赖。
       implementation 'commons-net:commons-net:3.6'
       // 开启 HTTPDNS 解析
        implementation 'com.squareup.okhttp3:okhttp:4.2.1'
    }
    

    其中,如果您需要使用 RTM 协议推拉流功能,则需要将 TTSDK 的在线集成地址替换为:

    implementation 'com.bytedanceapi:ttsdk-ttlivepush_rtc:x.x.x.x'
    implementation 'com.bytedanceapi:ttsdk-ttlivepull_rtc:x.x.x.x'
    

    说明

    • 如果使用连麦互动功能,您需要添加 RTC SDK 相关依赖,请创建工单联系技术支持获取适配版本 SDK 的集成方法。
    • Android 端互动直播场景核心功能实现方式请参见 Android 互动直播
  4. 单击 Sync Now 按钮同步 SDK,SDK 将自动下载集成到工程。如果出现集成失败,请检查您与 jcenter 仓库的网络连接。

配置权限

  1. 在 AndroidManifest.xml 文件中声明应用间交互的权限。

    <!-- 使用权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.INTERNET" />
    
  2. 添加动态申请权限代码。

    private boolean checkPermission(int request) {
            String permissions[] = new String[]{
                    Manifest.permission.CAMERA,
                    Manifest.permission.RECORD_AUDIO,
                    Manifest.permission.MODIFY_AUDIO_SETTINGS,
                    Manifest.permission.ACCESS_NETWORK_STATE
            };
            List<String> permissionList = new ArrayList<>();
            for (String permission : permissions) {
                boolean granted = ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED;
                if (granted) continue;
                permissionList.add(permission);
            }
            if (permissionList.isEmpty()) return true;
    
            String permissionsToGrant[] = new String[permissionList.size()];
            permissionList.toArray(permissionsToGrant);
            ActivityCompat.requestPermissions(this, permissionsToGrant, request);
            return false;
    }
    

添加 License

拷贝 License 文件到工程目录下。例如下图所示,将 License2_test.lic 文件拷贝到 assets 目录下。

alt

配置混淆规则

在 proguard-rules.pro 文件中,将 SDK 相关类加入不混淆名单。

-keep class com.pandora.**{*;}
-keep class com.ss.**{*;} 
-keep class com.bytedance.**{*;}
-keep class com.pandora.ttlicense2.**{*;}
-keep class com.bytertc.**{*;}
-keep class log.**{*;}

注意

如果您集成了 RTC SDK,除上述混淆规则外,您还需要配置 RTC 版本混淆规则