You need to enable JavaScript to run this app.
导航

Android

最近更新时间2024.01.10 16:37:14

首次发布时间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'
  1. 单击 Sync Now 按钮同步 SDK,SDK 将自动下载集成到工程。如果出现集成失败,请检查您与 jcenter 仓库的网络连接。

配置权限

在 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" />

添加动态申请权限代码。

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.**{*;}

注意

如果您需要使用互动版 SDK,除上述混淆规则外,您还需要配置 RTC 版本混淆规则