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

ApsaraVideo VOD:クイックスタート

最終更新日:Sep 11, 2026

このドキュメントでは、AliPlayerKit を迅速に統合する方法について、グローバル初期化からコンポーネントレイヤーとシーンレイヤーの統合までを説明します。

説明

開始する前に、「統合の準備」の説明に従って、環境を設定し、必要な依存関係が追加されていることを確認してください。

説明

AI 活用ヒント:このドキュメントは、AI が解析しやすいように構成されています。開発ワークフローを加速するための Skills として使用できます。

AliPlayerKit のミニマルな API により、少ないコードで動画再生機能を迅速に統合できます。

統合オプションの選択

AliPlayerKit は階層化アーキテクチャを採用しており、コンポーネントレイヤーとシーンレイヤーの両方の統合を提供します。ビジネスニーズに最も適したオプションを選択してください:

統合オプション

モジュール

説明

ユースケース

コンポーネントレイヤーの統合

playerkit

設定可能なプレーヤー UI コンポーネントが含まれている、playerkit コアモジュールを使用します。

カスタムのプレーヤー UI や、再生動作の柔軟な制御が必要な場合。

シーンレイヤーの統合

playerkit-scenes

コンポーネントレイヤー上に構築された、一般的なシナリオ向けの完全なビルド済みソリューションを提供します。

長尺動画、短尺動画、ライブストリーミングなどの標準的な再生シナリオを迅速に実装する場合。

説明

シーンレイヤーはコンポーネントレイヤーに依存しているため、まずコンポーネントレイヤーの統合を完了する必要があります。

グローバル初期化

グローバル初期化のために、Application.onCreate() で AliPlayerKit.init() を呼び出します。このメソッドは、プレーヤーコアとグローバル設定を初期化するため、アプリケーションのライフサイクル中に一度だけ呼び出す必要があります。

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // AliPlayerKit のグローバル設定を初期化します。
        AliPlayerKit.init(this);
    }
}
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        // AliPlayerKit のグローバル設定を初期化します。
        AliPlayerKit.init(this)
    }
}
説明

AliPlayerKit は、setPlayerViewType() や setDisableScreenshot() など、他のグローバル設定メソッドも提供します。詳細については、「API リファレンス」をご参照ください。

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

playerkit モジュールであるコンポーネントレイヤーは、すぐに使える設定可能なプレーヤー UI コンポーネントを提供します。動画再生が必要な各ページで、以下の手順に従って再生機能を実装します。

ステップ 1:プレーヤービューの追加

レイアウト XML ファイルに AliPlayerView を追加します:

<!-- プレーヤーコンポーネントビュー -->
<com.aliyun.playerkit.AliPlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />       

AliPlayerView をレイアウトに直接配置し、必要に応じて幅と高さを設定します。外部コンテナが必要な場合 (たとえば、フルスクリーン切り替えをサポートするため)、FrameLayout や他のコンテナでラップできます。

ステップ 2:コントローラーのアタッチと再生の開始

重要

アプリケーションがフルスクリーンへの切り替えをサポートしている場合は、AndroidManifest.xml でプレーヤーの Activity の android:configChanges 属性を設定する必要があります。これにより、画面が回転したときに Activity が再作成されるのを防ぎ、再生状態が失われるのを回避できます。

<application>
    <activity
        android:name=".VideoPlayerActivity"
        android:configChanges="orientation|screenSize"
        ...>
    </activity>
</application>

この設定後、画面の向きが変わっても Activity の再作成がトリガーされなくなり、プレーヤーの状態が維持されます。

Activity または Fragment で、コントローラーを作成し、データを設定して、ビューにアタッチします:

public class VideoPlayerActivity extends AppCompatActivity {

    private AliPlayerView playerView;
    private AliPlayerController controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_player);

        // 1. プレーヤービューを取得します。
        playerView = findViewById(R.id.player_view);

        // 2. プレーヤーコントローラーを作成します。
        controller = new AliPlayerController(this);

        // 3. 再生データを設定します (VidAuth を推奨)。
        AliPlayerModel model = new AliPlayerModel.Builder()
                .videoSource(VideoSourceFactory.createVidAuthSource(
                        "your_video_id",    // 動画 ID
                        "your_playback_credential"    // 再生認証情報
                ))
                .coverUrl("https://example.com/cover.jpg")  // 実際のカバー画像の URL に置き換えてください。
                .videoTitle("Sample Video")
                .autoPlay(true)
                .build();

        // 4. コントローラーをビューにアタッチします。
        playerView.attach(controller, model);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 5. デタッチしてリソースを解放します。
        playerView.detach();
    }
}
class VideoPlayerActivity : AppCompatActivity() {

    private lateinit var playerView: AliPlayerView
    private lateinit var controller: AliPlayerController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_video_player)

        // 1. プレーヤービューを取得します。
        playerView = findViewById(R.id.player_view)

        // 2. プレーヤーコントローラーを作成します。
        controller = AliPlayerController(this)

        // 3. 再生データを設定します (VidAuth を推奨)。
        val model = AliPlayerModel.Builder()
                .videoSource(VideoSourceFactory.createVidAuthSource(
                        "your_video_id",    // 動画 ID
                        "your_playback_credential"    // 再生認証情報
                ))
                .coverUrl("https://example.com/cover.jpg")  // 実際のカバー画像の URL に置き換えてください。
                .videoTitle("Sample Video")
                .autoPlay(true)
                .build()

        // 4. コントローラーをビューにアタッチします。
        playerView.attach(controller, model)
    }

    override fun onDestroy() {
        super.onDestroy()
        // 5. デタッチしてリソースを解放します。
        playerView.detach()
    }
}
説明

まだ動画 ID と再生認証情報がない場合は、SceneConstants.java で提供されているサンプルデータを使用して、テスト用のサンプルをすばやく実行できます。

ステップ 3 (オプション):戻るボタンの処理

アプリケーションがフルスクリーン再生をサポートしている場合は、Activity で戻るボタンのイベントを処理する必要があります:

@Override
public void onBackPressed() {
    // フルスクリーンモードの場合は、フルスクリーンを終了します。
    if (playerView.onBackPressed()) {
        return;  // イベントが処理されたため、デフォルトのアクションは実行しません。
    }
    super.onBackPressed();  // イベントが処理されなかったため、デフォルトのアクションを実行します。
}
@Deprecated("Deprecated in Java")
override fun onBackPressed() {
    // フルスクリーンモードの場合は、フルスクリーンを終了します。
    if (playerView.onBackPressed()) {
        return  // イベントが処理されたため、デフォルトのアクションは実行しません。
    }
    super.onBackPressed()  // イベントが処理されなかったため、デフォルトのアクションを実行します。
}
説明

各コンポーネントの完全な API の説明については、「API リファレンス」をご参照ください。コア API の呼び出しフローについては、「コア機能」をご参照ください。

オプション 2:シーンレイヤーの統合

シーンレイヤーは、長尺動画、短尺動画、ライブストリーミングなど、特定のビジネスシナリオ向けの完全な再生ソリューションを提供します。シーンレイヤーはコンポーネントレイヤー上に構築されており、追加の開発をすることなく、すぐに使用できます。

ステップ 1:シーンモジュールの選択

シーンモジュールは playerkit-scenes ディレクトリにあります。利用可能なモジュールは次のとおりです:

シーンモジュール

説明

scene-common

共通シーンモジュール (必須)。他のシーンモジュールはこれに依存します。

scene-longvideo

長尺動画再生のための完全なソリューションを提供します。

scene-shortvideo

スワイプベースの短尺動画再生のための完全なソリューションを提供します。

scene-live

ライブストリーミング再生のための完全なソリューションを提供します。

scene-playlist

プレイリスト再生のための完全なソリューションを提供します。

ステップ 2:シーンページの起動

シーンモジュールを統合した後、次の 2 つの方法のいずれかでシーンページを起動できます:

方法 1:Intent によるナビゲーション

// 長尺動画シナリオにナビゲートします。
Intent intent = new Intent(this, LongVideoActivity.class);
startActivity(intent);
// 長尺動画シナリオにナビゲートします。
val intent = Intent(this, LongVideoActivity::class.java)
startActivity(intent)

方法 2:スキーマによるナビゲーション

シーンモジュールは、特定の再生シナリオを開始するためのスキーマによるナビゲーションをサポートしています。各シナリオのスキーマは、対応するモジュールの AndroidManifest.xml で定義されています。特定のスキーマ URL は、<intent-filter> の <data> タグ内にあります。

たとえば、AndroidManifest.xml の設定が次のようになっている場合:

<data
    android:host="scenes"
    android:path="/longvideo"
    android:scheme="playerkit" />   

スキーマ URL を次のように作成します:

playerkit://scenes/longvideo          
// ターゲットシナリオにナビゲートします (実際のスキーマ URL に置き換えてください)。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("your_schema_url_here"));
startActivity(intent);
// ターゲットシナリオにナビゲートします (実際のスキーマ URL に置き換えてください)。
val intent = Intent(Intent.ACTION_VIEW).apply {
    data = Uri.parse("your_schema_url_here")
}
startActivity(intent)

使用例と拡張

これで、AliPlayerKit の基本的な統合と動画再生の実装が完了しました。

その他の使用例については、以下のディレクトリをご参照ください:

  • playerkit-examples:一般的な API の使用例を提供します。

  • playerkit-scenes:典型的な再生シナリオのソリューションを提供します。