全部產品
Search
文件中心

ApsaraVideo VOD:整合準備

更新時間:Sep 10, 2026

本文介紹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倉庫

在專案中引入阿里雲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

情境公用模組,包含樣本視頻常量(如自行實現視頻源可省略)。

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-settings和scene-common,整合時需根據實際情況調整:

模組

依賴項

整合時處理方式

scene-longvideo

demo-settings、scene-common

移除demo-settings,scene-common可選。

scene-live

demo-settings、scene-common

移除demo-settings,scene-common可選。

scene-shortvideo

scene-common

scene-common可選。

scene-playlist

scene-common

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檔案中。

升級步驟

  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"
    
    // 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"         
  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.xml的package屬性

配置位置:各模組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。