You need to enable JavaScript to run this app.
企业直播

企业直播

复制全文
Android 开播 SDK
集成 Android 开播 SDK
复制全文
集成 Android 开播 SDK

开播 SDK 提供录屏直播和视频直播两大功能。本文介绍如何将开播 SDK 集成到您的 Android App 中。

注意

1.49.0 - 1.54.1 版本的 Android 开播 SDK 在日志事件上报方面存在问题。为避免影响线上问题排查,请将 1.49.0 - 1.54.1 版本升级到 1.54.2 及以上版本。

前提条件

  • 您已开通旗舰版或尊享版套餐。详见计费说明
  • 安装 Android Studio,建议使用 4.0 及以上版本。
  • Android 5.0(API 级别 21)及以上版本的真机。
  • CPU 架构:armeabi-v7a 或 arm64-v8a。
  • 仅支持 AndroidX 库。
  • minSdkVersion:21(Android 5.0)及以上。
  • targetSdkVersion:minSdkVersion 及以上、35(Android 15)及以下。
  • JDK version:1.8.0 及以上。
  • 获取直播 License 文件、创建 SDK 应用时填写的 App 英文名称以及应用创建后生成的 App ID。详见获取 License

集成步骤

步骤一:配置 Gradle

  1. 增加以下配置到项目根目录下的 build.gradle 文件。

    buildscript { 
        repositories { 
            google() 
            mavenCentral() 
        } 
        dependencies { 
            // 推荐使用 3.6.3 或更高的版本
            classpath 'com.android.tools.build:gradle:3.6.3' 
        } 
    } 
     
    allprojects { 
        repositories { 
            google() 
            mavenCentral() 
            jcenter() 
            maven {
                url "https://artifact.bytedance.com/repository/Volcengine/" // 火山引擎的官方仓库地址
            }
            maven {
                url "https://artifact.bytedance.com/repository/thrall_base/" // 推流仓库地址
                credentials {
                    username = 'veVOS' // 访问推流仓库的用户名,无需更改
                    password = 'KUC9TpKrqbryrxHz' // 访问推流仓库的密码,无需更改
                }
                authentication {
                    digest(BasicAuthentication)
                }
            }
             
            flatDir { 
                dirs 'libs'   // CV SDK 文件 effectAAR-release.aar 的本地目录
            } 
        } 
    } 
    
  2. 增加以下配置到 app 目录下的 build.gradle 文件。

    android { 
        defaultConfig { 
            minSdkVersion 21 
            ndk { 
                abiFilters "armeabi-v7a","arm64-v8a" 
            } 
        } 
      
        packagingOptions { 
            pickFirst '**/libc++_shared.so' 
        } 
     
       // 开启数据绑定
        buildFeatures {
            dataBinding true
        }
    } 
     
    // 引入所需依赖
    dependencies { 
     
        // 引入开播 SDK。如不需要录屏直播功能,则使用 implementation "com.bytedance.bdlive:bdlive-push:1.65.0.chinaLite" 引入不包含录屏直播功能的开播 SDK
        implementation "com.bytedance.bdlive:bdlive-push:1.65.0.chinaFull"
     
        // 引入 Glide 图片库。如果项目已经引入 Glide 图片库,请查看 Glide 版本兼容性章节确保 Glide 版本兼容
        implementation "com.github.bumptech.glide:glide:4.15.1" 
    } 
    

    说明

    自 SDK 1.54.0 版本开始,

    • 引入包含所有功能的开播 SDK 时,SDK 的版本后缀从 VersionNumber.external 变更为 VersionNumber.chinaFull。例如,使用 com.bytedance.bdlive:bdlive-push:1.53.0.external 引入包含所有功能的开播 SDK 1.53.0 版本,使用 com.bytedance.bdlive:bdlive-push:1.54.0.chinaFull 引入包含所有功能的开播 SDK 1.54.0 版本。
    • 引入不包含录屏直播功能的开播 SDK 时,SDK 的版本后缀从 remove-rtc:VersionNumber.external 变更为 VersionNumber.chinaLite。例如,使用 com.bytedance.bdlive:bdlive-push-remove-rtc:1.53.0.external 引入不包含录屏直播功能的开播 SDK 1.53.0 版本,使用 com.bytedance.bdlive:bdlive-push:1.54.0.chinaLite 引入不包含录屏直播功能的开播 SDK 1.54.0 版本。

Glide 版本兼容性

自开播 SDK 1.29.0 版本开始,依赖的图片库组件已迁移至 Glide。Glide 不同版本的 API 存在较大差异,为避免由于调用不同版本的 API 导致崩溃,请参考以下内容确保 Glide 版本兼容性。项目引入的 Glide 版本不同,确保兼容性的方法也不同。

  • Glide 版本大于等于 4.9.0:无需额外操作。
  • Glide 版本为小于 4.9.0 的 4.x:打开项目 app 目录下的 build.gradle 文件并增加以下配置。
    // 引入开播 SDK
    implementation("com.bytedance.bdlive:bdlive-push:x.x.x.chinaFull"){
     {
     // 移除默认的 bdlive-glide-v4 库
     exclude group:"com.bytedance.bdlive",module:"bdlive-glide-v4"
     }
    }
    
    // 引入 bdlive-glide-adapt-v4 库
    implementation "com.bytedance.bdlive:bdlive-glide-adapt-v4:1.1.5"
    

说明

开播 SDK 不支持 Glide 3.x 版本。建议将 Glide 升级至最新版本,升级后无需额外操作即可确保 Glide 版本兼容性。

步骤二:添加权限

app/src/main 目录下的 AndroidManifest.xml 文件中添加以下权限配置。

<!-- 访问本地存储权限 --> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
 
<!-- 网络状态权限 --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
 
<!-- 相机权限 --> 
<uses-permission android:name="android.permission.CAMERA" /> 
<!-- 录音权限--> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<!-- 前台 service 权限 --> 
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> 

步骤三:添加混淆规则

app 目录下的 proguard-rules.pro 文件中添加以下混淆规则。

-keep class com.pandora.**{*;}
-keep class com.ss.**{*;} 
-keep class com.bytedance.**{*;}
-keep class com.pandora.ttlicense2.**{*;}
-keep class com.bytertc.**{*;}
-keep class org.webrtc.**{*;}
-keep class com.effectsar.**{*;}
-keep class com.bef.**{*;}

步骤四:导入 License

app/src/main 目录下,创建 assets/lic 目录并把获取到的直播 License 文件 liveLicense.lic 放到 assets/lic 目录下。文件结构如下:

app
|-- src
    |-- main
        |-- java
        |-- assets
            |-- lic
                |--  liveLicense.lic

步骤五:初始化 BDLive SDK

在初始化 Application 的过程中,调用 BDLiveEnv.init 初始化 BDLive SDK,即开播 SDK。

注意

初始化不获取用户个人信息。

private void initBDLiveEnv() {
    String assetsLicenseUri2 = "assets:///lic/example.lic"; // 将 assets:///lic/example.lic 替换为直播 License 的 URI
    BDLiveEnv.init(new BDLiveConfig.Builder()
        .setApplicationContext(this)
        .setAppId("APP_ID") // 将 APP_ID 替换为在 SDK 应用创建后生成的 App ID
        .setAppName("APP_NAME") // 将 APP_NAME 替换为创建 SDK 应用时填写的 App 英文名称
        .setAppChannel("CHANNEL_NAME") // 将 CHANNEL_NAME 替换为 App 的渠道名称,例如小米应用商店(xiaomi)、华为应用市场(huawei)等
        .setAppVersion("APP_VERSION") // 将 APP_VERSION 替换为 App 的版本号。合法版本号应包含 2 个或以上的分隔符,例如 1.3.2
        .setAppRegion("REGION") // 将 REGION 替换为创建 SDK 应用时使用的地域,即 china
        .setLiveLicenseUri(assetsLicenseUri2) // 直播 License 的 URI
        .setUseSecureInfoCollect(true) // 是否开启信息采集安全模式。true:开启,不采集用户个人信息。false:不开启,采集用户个人信息。默认值:true        
        .build());
}

(可选)步骤六:添加 CV 功能

如果您需要使用美颜、滤镜和道具贴纸功能,可参考本步骤添加 CV 功能。

前提条件

  • 请确保您已在项目中集成开播 SDK 并实现了开播功能。
  • 请确保您已购买火山引擎智能美化特效产品的 CV SDK,并已获取到对应版本的产品 License 和素材资源包。

注意事项

不同版本的开播 SDK 适配的 CV SDK 版本不同,请确保您的 SDK 匹配了正确版本的 CV SDK:

  • 从 1.64.0 版本起,开播 SDK 适配 4.7.2 版本的 CV SDK;
  • 1.63.0 版本及之前的开播 SDK 适配 4.4.3 版本的 CV SDK。

操作步骤

  1. 将 CV SDK 文件 effectAAR-release.aar 添加到 app/libs 目录中。

  2. app 目录下的 build.gradle 文件中添加以下内容。

    android {
         // 解决 .so 文件的冲突问题
         packagingOptions {
            pickFirst '**/libc++_shared.so'
        }
        // 添加依赖
        dependencies {
            implementation(name: 'effectAAR-release', ext: 'aar')
        } 
    }
    
  3. 将 CV 资源包 resource.zip 添加到 app/src/main/assets 目录中。resource.zip 的内容如下图所示。
    Image

    说明

    ZIP 包的根目录名字为 resource。

  4. 完成 CV 授权。您可以选择离线授权或在线授权。

    • 离线授权:如果选择离线授权,CV License 在 CV 资源包 resource.zipLicenseBag.bundle 中,无需额外配置。
    • 在线授权:如果选择在线授权,需在代码中设置在线授权所需的 key 和 secret。
      // 联系技术支持获取您的业务标识和业务密钥。将 KEY 替换为您的业务标识,对应开通的业务类型。将 SECRET 替换为您的业务密钥,业务密钥可在创建业务时同业务标识一起获得
      PushSettings.Holder.mSettings.getCvSettings().setOnLineLicenseInfo("KEY","SECRET");
      
  5. 开启 CV 功能。

    CVSettings cvSettings = PushSettings.Holder.mSettings.getCvSettings();
    
    // 开启 CV 功能
    cvSettings.setEnableCV(true);
    // 设置 CV 资源包对应的版本号。版本号变大后,SDK 会重新解压 CV 资源包,建议每更新一次 CV 资源包,版本号递增 1
    cvSettings.setResourceVersionCode(1);
    // 设置 CV 资源包在 assets 目录中的路径
    cvSettings.setResourceAssetName("resource.zip");
    

优化包体积

自 SDK 1.54.0 版本开始,您可以按需完成以下操作优化 SDK 的包体积。

  1. app 目录下的 build.gradle 文件中,在 dependencies 块中找到开播 SDK 的依赖。

    com.bytedance.bdlive:bdlive-push:1.65.0.chinaFull
    
  2. chinaFull 替换为 chinaLite,即:

    com.bytedance.bdlive:bdlive-push:1.65.0.chinaLite
    

优化包体积后的 SDK 不包含录屏直播功能。

说明

如果 SDK 的版本号为 1.39.1 - 1.53.0,您可以将 SDK 的依赖从 com.bytedance.bdlive:bdlive-push:VersionNumber.external 变更为 com.bytedance.bdlive:bdlive-push-remove-rtc:VersionNumber.external,优化 SDK 的包体积。例如将 com.bytedance.bdlive:bdlive-push:1.53.0.external 变更为 com.bytedance.bdlive:bdlive-push-remove-rtc:1.53.0.external

最近更新时间:2025.11.21 10:57:23
这个页面对您有帮助吗?
有用
有用
无用
无用