本文介绍AliPlayerKit的集成步骤和前提条件,帮助您快速将AliPlayerKit集成到项目中。
AI友好提示:本文档为结构化文档,步骤清晰,适合AI解析与执行。可作为Skills用于辅助开发流程,推荐使用AI辅助接入AliPlayerKit。
集成流程概览
请确保已访问AliPlayerKit完成项目下载。
AliPlayerKit提供两种集成方案,您可以根据业务需求选择,后续我们将推出专属的Skills,完善接入支持:
集成方案 | 说明 | 适用场景 |
组件层集成 | 集成 | 需要自定义播放器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仓库
在项目中引入阿里云SDK的Maven源:
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包含示例视频常量,如自行实现视频源可省略
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-settings和scene-common,集成时需根据实际情况调整:
模块 | 依赖项 | 集成时处理方式 |
|
| 移除 |
|
| 移除 |
|
|
|
|
|
|
移除demo-settings依赖
scene-longvideo和scene-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-settings或scene-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文件中。
您可以通过以下链接查看相关SDK的最新版本及文档:
升级步骤
确认版本兼容性
升级前建议查阅SDK发布历史与更新日志,确认目标版本是否存在Breaking Changes或其他兼容性调整。
修改版本号
在
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"验证升级:
清理并重新编译项目:
./gradlew clean assemble --stacktrace --info验证核心播放功能:播放、暂停、Seek、倍速等。
验证特定播放场景:如RTS超低延时直播等。
升级SDK后,建议记录升级前后的版本号,以便后续问题排查和版本追溯。
常见问题
License相关问题
问题:播放器出现License错误。
解决方案:
确认已正确配置License证书和Key。
检查License是否已过期。
确认包名与License绑定的包名一致。
如未配置正确的License,集成完毕后会出现播放黑屏等异常问题。
依赖冲突问题
问题:Gradle同步失败,提示依赖冲突。
解决方案:
检查项目中是否已存在相同依赖的不同版本。
使用
exclude排除冲突依赖。统一项目中的依赖版本。
如果您的项目中已有相同第三方库,请调整playerkit模块中的版本号,以确保兼容性并避免冲突。
初始化失败问题
问题:调用AliPlayerKit.init()抛出异常。
解决方案:
确认Context不为null。
确认在
Application.onCreate()中调用。检查是否重复调用(重复调用会被忽略,不会抛异常)。
SDK版本配置问题
问题:编译时报SDK版本不匹配错误。
解决方案:
请确保playerkit模块的配置(如compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion等)与您的项目中的设置保持一致。
Namespace相关问题
问题:直接拷贝模块后,编译时出现Namespace相关的错误。
解决方案:
各模块的build.gradle中已默认声明了namespace,适配AGP 7.x及以上版本。根据您项目的AGP版本进行以下调整:
AGP版本 | 配置要求 |
≥ 8.0(如8.3.2) | 保持 |
7.x(如7.4.2) | namespace声明可选,建议保留以兼容未来升级 |
< 7.0(如4.0.1) | 需注释或删除 |
配置位置:各模块build.gradle的android {}块中
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。