本文介绍如何集成 Android 拉流 SDK。
已创建 SDK 应用并获取 License 文件。详见获取 SDK License。
直播支持在线集成和离线集成 2 种 SDK 集成方法。
本章节为您介绍在线集成的具体步骤。
Step 1:配置 Maven 仓库
SDK 的集成需要配置多个 Maven 仓库,以确保所有必要的依赖项都能被正确下载。配置步骤如下:
build.gradle 文件。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'
https://ve-vos.volccdn.com/script/vevos-repo-base.gradle 中的 Maven 配置拷贝到 settings.gradle 文件的 dependencyResolutionManagement 配置块下。Step 2:配置环境和依赖
build.gradle 文件并完成以下配置:
defaultConfig 中配置 App 使用的 CPU 架构。支持 armeabi-v7a 和 arm64-v8a 架构。dependencies 中添加依赖。其中,android { defaultConfig { ndk { //设置 SO 库架构,支持 armeabi-v7a 和 arm64-v8a 架构。 abiFilters 'armeabi-v7a', 'arm64-v8a' } } } dependencies { ...... // 如需集成 1.49.1.11 及以上版本,并使用基础拉流功能,必须添加以下依赖。 implementation 'com.bytedanceapi:ttsdk-ttlivepull_standard:x.x.x.x'
implementation 'com.bytedanceapi:ttsdk-ttbmf:x.x.x.x' 和 implementation 'com.bytedanceapi:ttsdk-ttlivepull_premium:x.x.x.x' 依赖。implementation 'com.bytedanceapi:ttsdk-ttlivepull_standard:x.x.x.x' 替换为 implementation 'com.bytedanceapi:ttsdk-ttlivepull_premium:x.x.x.x'。implementation 'com.bytedanceapi:ttsdk-ttquic:x.x.x.x' 和 implementation 'com.bytedanceapi:ttsdk-ttlivepull_premium:x.x.x.x' 依赖。说明
x.x.x.x 替换为 SDK 的指定版本。推荐使用最新版本。版本号详见 Android 拉流 SDK 发布历史。implementation 'com.bytedanceapi:ttsdk-ttlivepull_standard:1.48.2.11'。implementation 'com.bytedanceapi:ttsdk-ttquic:1.48.2.11' 和 implementation 'com.bytedanceapi:ttsdk-ttlivepull_standard:1.48.2.11'。implementation 'com.bytedanceapi:ttsdk-ttlivepull_premium:1.48.2.11'。implementation 'com.bytedanceapi:ttsdk-ttlivepull:x.x.x.x'。implementation 'com.bytedanceapi:ttsdk-ttlivepull_rtc:x.x.x.x'。<!-- 使用权限 --> <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 文件到工程目录下。例如下图所示,将 License2_test.lic 文件拷贝到 assets 目录下。

在 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 版本混淆规则