すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:統合の準備

最終更新日:Sep 11, 2026

このトピックでは、AliPlayerKit をプロジェクトに統合するための手順と前提条件について説明します。

説明

このドキュメントは、AI が解析・実行しやすいように、明確な手順で構成されています。開発ワークフローを支援する スキル として使用できます。AI を活用して AliPlayerKit を統合することを推奨します。

統合の概要

重要

AliPlayerKit リポジトリからプロジェクトをダウンロード済みであることを確認してください。

AliPlayerKit は 2 つの統合オプションを用意しています。ビジネスニーズに合わせて選択できます。統合サポートを向上させるため、専用の スキル をまもなくリリースする予定です。

統合ソリューション

説明

ユースケース

コンポーネントレベルの統合

playerkit コアモジュールを統合します。

プレーヤー UI のカスタマイズや、再生動作を柔軟に制御する必要がある場合。

シナリオレベルの統合

コンポーネント層の上にシナリオモジュールを統合します。

標準的な再生シナリオを迅速に実装したい場合。

説明

シナリオ層はコンポーネント層に依存します。シナリオレベルの統合を選択する場合は、まずコンポーネントレベルの統合を完了している必要があります。

前提条件

開発環境の設定

AliPlayerKit を使用する前に、お使いの開発環境が以下の要件を満たしていることを確認してください。

  • JDK 11

    • JDK は [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 以降である必要があります。

ライセンスの準備

ApsaraVideo Player SDK のプレーヤーライセンス証明書とライセンスキーを取得してください。詳細については、「ライセンスの管理」をご参照ください。

重要

ライセンスを正しく設定しないと、プレーヤーは機能せず、認証例外がスローされる可能性があります。

オプション 1:コンポーネントレベルの統合

playerkit コアモジュールは、すぐに使える設定可能なプレーヤー UI コンポーネントを用意しています。基本的な再生と一般的なインタラクションをサポートします。

ステップ 1:コンポーネントモジュールのコピー

playerkit コアモジュール (ライブラリ) のディレクトリをプロジェクトにコピーします。

# playerkit コアモジュールをプロジェクトのルートディレクトリにコピーします
# 注: playerkit ディレクトリのみをコピーし、プロジェクト全体や playerkit-examples、playerkit-scenes などのサンプルモジュールはコピーしないでください
cp -r playerkit /path/to/your/project/

ステップ 2:Gradle プロジェクトの設定

Maven リポジトリの設定

Alibaba Cloud Maven リポジトリをプロジェクトに追加します。

repositories {
    // Alibaba Cloud Maven
    maven { url "https://maven.aliyun.com/repository/releases" }
}
repositories {
    // Alibaba Cloud 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:ライセンスの設定

ライセンス証明書ファイルの追加

ライセンス証明書ファイルをアプリモジュールの src/main/assets/cert/ ディレクトリに配置します。

ライセンス設定の追加

次の設定をアプリモジュールの AndroidManifest.xml ファイルに追加します。

<meta-data
    android:name="com.aliyun.alivc_license.licensekey"
    android:value="Your License Key" />
<meta-data
    android:name="com.aliyun.alivc_license.licensefile"
    android:value="assets/cert/license.crt" />          
説明
  • <meta-data> 要素が <application> 要素内にあり、name 属性が正しいことを確認してください。

  • ApsaraVideo Player SDK サービスが中国以外でデプロイされている場合は、「Android でのライセンスの統合」で設定手順をご参照ください。

  • 完全な設定例については、demo-app モジュールをご参照ください。

ステップ 4:統合の検証

プロジェクトの同期とコンパイル

Gradle を同期してプロジェクトをコンパイルし、依存関係とモジュールの設定が正しいことを確認します。

./gradlew clean assemble --stacktrace --info

コンパイルが成功し、依存関係のエラーが表示されなければ、playerkit モジュールは正しく参照されています。

統合バージョンの記録 (推奨)

統合が完了し、コンパイルが成功したら、git commit を実行してコンポーネントのソースコードの現在のコミット ID を記録してください。この記録は統合バージョンのベースラインとして機能します。これにより、将来のアップグレードやソースの変更を追跡できます。また、統合中の品質管理をサポートし、トラブルシューティングや技術サポートを迅速化します。例:

git add .
git commit -m "feat: AliPlayerKit モジュールを統合 (ソースコミット: 2c30d92)"            

オプション 2:シナリオレベルの統合

シナリオ層は、長尺動画、短尺動画、ライブストリーミング、リスト再生など、特定のビジネスシナリオ向けの再生例を用意しています。各シナリオモジュールはスタンドアロンのサンプルです。ビジネスニーズに合ったモジュールを選択し、直接統合できます。

説明

前提条件:シナリオ層はコンポーネント層に依存します。シナリオレベルの統合を開始する前に、コンポーネントレベルの統合を完了している必要があります。

ステップ 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 モジュールはコピーしないでください。これはデモ目的でのみ使用され、QR コード設定や再生リンクの保存などの機能を提供します。

  • 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 はデモでのみ使用されます。
    // 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 "Your video Vid";  // または、ビジネス API から取得します。
}

private String getVideoPlayAuth() {
    return "Your PlayAuth";  // または、ビジネス API から取得します。
}           

ステップ 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 を実行してコミット ID を記録してください。これは将来の追跡に役立ちます。

(任意) SDK アップグレードガイド

AliPlayerKit は以下の SDK に依存します。

SDK

説明

AliPlayer SDK

ApsaraVideo Player SDK。動画デコード、レンダリング、再生制御などのコア再生機能を提供します。

RtsSDK

Alibaba Cloud RTS SDK。ミリ秒レベルの遅延で、リアルタイムストリーミング (RTS) による超低遅延のライブ再生を可能にします。

基盤となる SDK のバージョンをアップグレードするには、次の手順に従ってください。

バージョン情報の表示

AliPlayerKit が依存する現在の SDK バージョンは、playerkit/build.gradle ファイルで定義されています。

関連 SDK の最新バージョンとドキュメントは、以下のリンクから確認できます。

アップグレード手順

  1. バージョンの互換性の確認

    アップグレードする前に、SDK のリリース履歴と更新ログを確認してください。ターゲットバージョンで破壊的変更やその他の互換性に関する調整が導入されていないかを確認してください。

  2. バージョン番号の更新

    playerkit/build.gradle ファイルで、SDK のバージョン番号を更新します。

    def player_sdk_version = "x.x.x"  // ターゲットバージョンに置き換えます
    api "com.aliyun.sdk.android:AliyunPlayer:$player_sdk_version-full"
    
    // RtsSDK のバージョンは AliPlayer SDK のバージョンと一致している必要があります。
    def rts_sdk_version = "x.x.x"  // ターゲットバージョンに置き換えます
    api "com.aliyun.rts.android:RtsSDK:$rts_sdk_version"            
  3. アップグレードの検証:

    • プロジェクトをクリーンにして再ビルドします。

      ./gradlew clean assemble --stacktrace --info                
    • 再生、一時停止、シーク、再生速度などのコア再生機能をテストします。

    • リアルタイムストリーミング (RTS) の超低遅延ライブ再生など、特定の再生シナリオをテストします。

説明

SDK をアップグレードした後、古いバージョン番号と新しいバージョン番号の両方を記録してください。これは、トラブルシューティングやバージョンの追跡に役立ちます。

よくある質問

ライセンスに関する問題

問題:プレーヤーにライセンスエラーが表示されます。

解決策:

  1. ライセンス証明書とライセンスキーが正しく設定されていることを確認してください。

  2. ライセンスの有効期限が切れていないか確認してください。

  3. アプリのパッケージ名が、ライセンスにバインドされているパッケージ名と一致していることを確認してください。

  4. 正しいライセンスを設定しないと、統合後に再生が失敗します。ブラックスクリーンやその他の異常な動作が発生することがあります。

依存関係の競合

問題:Gradle の同期が依存関係の競合エラーで失敗します。

解決策:

  1. プロジェクトに同じ依存関係の異なるバージョンがすでに含まれていないか確認してください。

  2. exclude を使用して、競合する依存関係を削除してください。

  3. プロジェクト全体で依存関係のバージョンを標準化してください。

  4. プロジェクトで同じサードパーティライブラリをすでに使用している場合は、playerkit モジュールのバージョン番号を調整して互換性を確保し、競合を回避してください。

初期化の失敗

問題:AliPlayerKit.init() の呼び出しによる初期化に失敗します。

解決策:

  1. Context が null でないことを確認してください。

  2. Application.onCreate() でメソッドを呼び出してください。

  3. 重複して呼び出していないか確認してください。重複した呼び出しは無視され、例外はスローされません。

SDK バージョン設定の問題

問題:コンパイルが SDK のバージョン不一致エラーで失敗します。

解決策:

playerkit モジュールの compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion などの設定が、プロジェクトの設定と一致していることを確認してください。

名前空間の問題

問題:モジュールをコピーした後、コンパイルが名前空間関連のエラーで失敗します。

解決策:

各モジュールの build.gradle ファイルは、Android Gradle プラグイン (AGP) 7.x 以降をサポートするために、デフォルトで名前空間を宣言します。お使いの AGP のバージョンに基づいてこの設定を調整してください。

AGP バージョン

設定要件

≥ 8.0 (例:8.3.2)

build.gradle の名前空間宣言を保持してください。

7.x (例:7.4.2)

名前空間の宣言は任意です。将来のアップグレードをサポートするために保持することを推奨します。

< 7.0 (例:4.0.1)

build.gradle の名前空間宣言をコメントアウトまたは削除してください。代わりに AndroidManifest.xml の package 属性を使用してください。

設定場所:各モジュールの build.gradle ファイル内の android {} ブロック内。

android {
    // 統合に関する FAQ
    // 名前空間宣言に関する注意:
    // - 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"
    // ...
}  

エミュレーター非対応

問題:エミュレーターで実行するとエラーが発生します。

解決策:

ApsaraVideo Player SDK はエミュレーターをサポートしていません。統合後は物理デバイスでテストする必要があります。

リポジトリの優先順位の競合

問題:Gradle がリポジトリの優先順位を解決する際に競合を報告します。

解決策:

これを解決するには、settings.gradle ファイルでリポジトリを宣言してください。