集成准备

更新时间:
复制为 MD 格式

本文介绍AliPlayerKit的集成步骤和前提条件,帮助您快速将AliPlayerKit集成到项目中。

说明

AI友好提示:本文档为结构化文档,步骤清晰,适合AI解析与执行。可作为Skills用于辅助开发流程,推荐使用AI辅助接入AliPlayerKit。

集成流程概览

重要

请确保已访问AliPlayerKit完成项目下载。

AliPlayerKit提供两种集成方案,您可以根据业务需求选择,后续我们将推出专属的Skills,完善接入支持:

集成方案

说明

适用场景

组件层集成

集成playerkit核心模块。

需要自定义播放器UI或灵活控制播放行为。

场景层集成

在组件层基础上集成场景模块。

快速实现标准播放场景。

说明

场景层依赖组件层。若选择场景层集成,需先完成组件层集成。

前提条件

开发环境配置

在使用AliPlayerKit之前,请确保您的开发环境满足以下要求:

  • JDK 11

    • 配置方式:Preferences → Build, Execution, Deployment → Build Tools → Gradle → Gradle JDK。

    • 选择11(如果没有11,请升级Android Studio版本)。

  • Android开发环境

    • 安装最新版本的Android Studio。

    • 配置Android SDK,最低支持API级别为21(Android 5.0)。

    • compileSdkVersion建议使用31或以上。

    • Gradle版本不低于7.0。

License准备

已获取音视频终端SDK的播放器License授权证书和License Key,详情请参见管理License

重要

如未正确配置License,播放器将无法正常工作,并可能抛出授权异常。

方案一:组件层集成

playerkit核心模块提供开箱即用、可配置的播放器UI组件,覆盖基础播放与常见交互能力。

步骤1:拷贝组件模块

playerkit核心模块(library)目录拷贝到您的项目中:

# 将playerkit核心模块拷贝到您的项目根目录下
# 注意:仅拷贝playerkit目录,而非整个项目或playerkit-examples、playerkit-scenes等示例模块
cp -r playerkit /path/to/your/project/

步骤2:Gradle项目配置

配置Maven仓库

在项目中引入阿里云SDKMaven源:

repositories {
    // aliyun maven
    maven { url "https://maven.aliyun.com/repository/releases" }
}
repositories {
    // aliyun maven
    maven("https://maven.aliyun.com/repository/releases")
}

添加模块引用

include ':playerkit'
include(":playerkit")

添加模块依赖

dependencies {
    // AliPlayerKit核心模块:提供开箱即用、可配置的播放器UI组件,覆盖基础播放与常见交互能力
    implementation project(':playerkit')
}
dependencies {
    // AliPlayerKit核心模块:提供开箱即用、可配置的播放器UI组件,覆盖基础播放与常见交互能力
    implementation(project(":playerkit"))
}

步骤3:配置License

添加License证书文件

将准备好的License证书文件放置到app模块的src/main/assets/cert/目录下。

添加License配置

app模块的AndroidManifest.xml中添加以下配置:

<meta-data
    android:name="com.aliyun.alivc_license.licensekey"
    android:value="您的License Key" />
<meta-data
    android:name="com.aliyun.alivc_license.licensefile"
    android:value="assets/cert/license.crt" />          
说明
  • 确保<meta-data>节点处于<application>元素下面,且name属性正确。

  • 若播放器SDK服务环境为海外,请参考Android端接入License完成配置。

  • 完整配置示例可参考demo-app模块。

步骤4:验证集成

同步并编译项目

同步Gradle并编译项目,确认依赖与模块配置正确:

./gradlew clean assemble --stacktrace --info

若编译成功且无依赖错误,说明playerkit模块已被正确引用。

记录集成版本(建议)

集成完成并编译通过后,建议执行一次git commit,记录当前组件源码的commit ID。该记录可作为组件集成时的版本基线,为后续组件升级或源码修改提供重要的追溯依据,并有助于把控组件的集成准入质量。在问题排查或技术支持时,也可以快速定位当前集成的组件版本。例如:

git add .
git commit -m "feat: integrate AliPlayerKit module (source commit: 2c30d92)"            

方案二:场景层集成

场景层提供针对具体业务场景的播放示例,如中长视频、短视频、直播和列表播放等。每个场景模块都是一个独立的示例,您可以根据业务需求选择参考或直接集成。

说明

前置条件:场景层依赖组件层能力。在集成场景层之前,请先完成组件层集成。

步骤1:拷贝场景模块

根据业务需求,拷贝所需的场景模块到您的项目中:

模块

说明

scene-common

场景公共模块,包含示例视频常量(如自行实现视频源可省略)。

scene-longvideo

中长视频场景示例。

scene-shortvideo

短视频场景示例。

scene-live

直播场景示例。

scene-playlist

列表播放场景示例。

# scene-common包含示例视频常量,如自行实现视频源可省略
cp -r playerkit-scenes/scene-common /path/to/your/project/

# 其他场景模块按需选择
cp -r playerkit-scenes/scene-longvideo /path/to/your/project/
cp -r playerkit-scenes/scene-live /path/to/your/project/
# ...         
重要
  • demo-settings模块不需要拷贝。该模块仅用于Demo演示,提供扫码配置、播放链接存储等功能。

  • scene-common模块提供示例视频常量。如果您已自行实现视频源获取逻辑,可省略该模块。

步骤2(可选):处理模块依赖

场景模块的build.gradle中依赖了demo-settingsscene-common,集成时需根据实际情况调整:

模块

依赖项

集成时处理方式

scene-longvideo

demo-settingsscene-common

移除demo-settingsscene-common可选。

scene-live

demo-settingsscene-common

移除demo-settingsscene-common可选。

scene-shortvideo

scene-common

scene-common可选。

scene-playlist

scene-common

scene-common可选。

移除demo-settings依赖

scene-longvideoscene-live模块的build.gradle中引用了demo-settings,需移除:

dependencies {
    // ...
    // 删除此行:demo-settings仅用于Demo演示
    // implementation project(':demo-settings')
}          

处理scene-common依赖

scene-common模块主要提供示例视频常量(如SceneConstants)。您可以选择:

  • 保留依赖:直接使用示例视频进行测试,无需额外处理。

  • 移除依赖:如自行实现视频源,可删除build.gradle中的依赖。

dependencies {
    // ...
    // 如自行实现视频源,可注释或删除此行
    // implementation project(':scene-common')
}          

替换视频源配置代码

移除demo-settingsscene-common依赖后,需修改Activity中的视频源获取逻辑:

原视频源获取逻辑

// ===== 原代码(使用demo-settings / scene-common)=====
import com.aliyun.playerkit.example.settings.link.LinkConstants;
import com.aliyun.playerkit.example.settings.storage.SPManager;
import com.aliyun.playerkit.scenes.common.SceneConstants;

private String getVideoVid() {
    String savedVid = SPManager.getInstance().getString(LinkConstants.KEY_VIDEO_VID);
    return StringUtil.isNotEmpty(savedVid) ? savedVid : SceneConstants.LANDSCAPE_SAMPLE_VID;
}

替换后视频源获取逻辑

// ===== 替换后(使用您的视频源)=====
private String getVideoVid() {
    return "您的视频Vid";  // 或从您的业务接口获取
}

private String getVideoPlayAuth() {
    return "您的PlayAuth";  // 或从您的业务接口获取
}           

步骤3:Gradle项目配置

添加模块引用

include ':scene-common'
include ':scene-longvideo'
// 按需添加其他场景模块...
include(":scene-common")
include(":scene-longvideo")
// 按需添加其他场景模块...

添加模块依赖

dependencies {
    // AliPlayerKit播放场景模块:基于AliPlayerKit核心组件,提供开箱即用的标准播放场景方案
    // 中长视频场景模块:提供中长视频播放的完整解决方案
    implementation project(':scene-longvideo')
}
dependencies {
    // AliPlayerKit播放场景模块:基于AliPlayerKit核心组件,提供开箱即用的标准播放场景方案
    // 中长视频场景模块:提供中长视频播放的完整解决方案
    implementation(project(":scene-longvideo"))
}

步骤4:验证集成

同步Gradle并编译项目,确认依赖与模块配置正确:

./gradlew clean assemble --stacktrace --info       
说明

场景模块集成完成后,同样建议执行一次git commit记录commit ID,便于后续追溯。

(可选)SDK升级指南

AliPlayerKit内部依赖以下SDK:

SDK

说明

AliPlayer SDK

阿里云播放器SDK,提供视频解码、渲染及播放控制等基础播放能力。

RtsSDK

阿里云RTS SDK,提供RTS超低延时直播播放能力,支持毫秒级延迟的实时流媒体播放。

如需升级底层SDK版本,可参考以下步骤。

查看版本信息

当前AliPlayerKit依赖的SDK版本信息定义在playerkit/build.gradle文件中。

升级步骤

  1. 确认版本兼容性

    升级前建议查阅SDK发布历史与更新日志,确认目标版本是否存在Breaking Changes或其他兼容性调整。

  2. 修改版本号

    playerkit/build.gradle中修改SDK版本号:

    def player_sdk_version = "x.x.x"  // 替换为目标版本
    api "com.aliyun.sdk.android:AliyunPlayer:$player_sdk_version-full"
    
    // RtsSDK版本号需与播放器版本保持一致
    def rts_sdk_version = "x.x.x"  // 替换为目标版本
    api "com.aliyun.rts.android:RtsSDK:$rts_sdk_version"            
  3. 验证升级

    • 清理并重新编译项目:

      ./gradlew clean assemble --stacktrace --info                
    • 验证核心播放功能:播放、暂停、Seek、倍速等。

    • 验证特定播放场景:如RTS超低延时直播等。

说明

升级SDK后,建议记录升级前后的版本号,以便后续问题排查和版本追溯。

常见问题

License相关问题

问题:播放器出现License错误。

解决方案

  1. 确认已正确配置License证书和Key。

  2. 检查License是否已过期。

  3. 确认包名与License绑定的包名一致。

  4. 如未配置正确的License,集成完毕后会出现播放黑屏等异常问题。

依赖冲突问题

问题:Gradle同步失败,提示依赖冲突。

解决方案

  1. 检查项目中是否已存在相同依赖的不同版本。

  2. 使用exclude排除冲突依赖。

  3. 统一项目中的依赖版本。

  4. 如果您的项目中已有相同第三方库,请调整playerkit模块中的版本号,以确保兼容性并避免冲突。

初始化失败问题

问题:调用AliPlayerKit.init()抛出异常。

解决方案

  1. 确认Context不为null。

  2. 确认在Application.onCreate()中调用。

  3. 检查是否重复调用(重复调用会被忽略,不会抛异常)。

SDK版本配置问题

问题:编译时报SDK版本不匹配错误。

解决方案

请确保playerkit模块的配置(如compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion等)与您的项目中的设置保持一致。

Namespace相关问题

问题:直接拷贝模块后,编译时出现Namespace相关的错误。

解决方案

各模块的build.gradle中已默认声明了namespace,适配AGP 7.x及以上版本。根据您项目的AGP版本进行以下调整:

AGP版本

配置要求

≥ 8.0(如8.3.2)

保持build.gradle中的namespace声明即可

7.x(如7.4.2)

namespace声明可选,建议保留以兼容未来升级

< 7.0(如4.0.1)

需注释或删除build.gradle中的namespace声明,使用AndroidManifest.xmlpackage属性

配置位置:各模块build.gradleandroid {}块中

android {
    /// 集成FAQ (Integration FAQ)
    /// 关于namespace声明的注意事项:
    /// - AGP版本 ≥ 8.0(如8.3.2):必须声明namespace
    /// - AGP版本 < 7.0(如4.0.1):需移除namespace声明,使用AndroidManifest.xml的package属性
    /// - AGP版本7.x:namespace声明可选,建议声明以兼容未来升级
    namespace = "com.aliyun.playerkit"
    // ...
}  

模拟器不支持问题

问题:在模拟器上运行出现异常。

解决方案

Android播放器SDK不支持模拟器,集成完成后需在真机上测试。

Repository优先级冲突

问题:Gradle在处理repository的优先级时出现冲突。

解决方案

请优先在settings.gradle中添加repository。