本文介紹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" // AlivcArtc 橋接層版本號碼需與播放器版本保持一致 api "com.aliyun.sdk.android:AlivcArtc:$player_sdk_version" // 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。