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

ApsaraVideo VOD:コア機能

最終更新日:Sep 11, 2026

このトピックでは、AliPlayerKit のコア機能について説明します。製品の位置づけ、コアアーキテクチャ、コンポーネントの責務、コアインターフェイス、および6つのコアシステムの詳細を解説します。

製品の位置づけ

設計目標

AliPlayerKit は、単なるプレーヤー UI コンポーネントではなく、汎用的な再生アーキテクチャレイヤーとして設計されており、以下の目標を掲げています:

設計目標

説明

ローコード統合

最小限のコードで完全な再生シナリオを統合します。

マルチシナリオ対応

ビデオオンデマンド (VOD)、ライブストリーミング、ショートビデオなど、さまざまな再生シナリオに対応します。

再利用可能なアーキテクチャ

スロットとポリシーのアーキテクチャを使用し、異なるサービス間でのプレーヤー機能の冗長な開発を回避します。

統一された基盤

すべてのプレーヤーソリューションとシナリオベースのソリューションの統一された基盤として機能します。

アーキテクチャ階層

アーキテクチャ階層において、AliPlayerKit はプレーヤーカーネルの上に位置します。統一された UI コンポーネントシステムと再生シナリオの抽象化を通じて、さまざまな再生サービスの共通機能をサポートします。

レイヤー

位置づけ

モジュールの場所

責務

コンポーネントレイヤー

プレーヤー UI コンポーネント

playerkit/

基本的な再生機能と一般的なインタラクティブ機能を備えた、すぐに使える設定可能なプレーヤー UI コンポーネントを提供します。

シナリオレイヤー

シナリオベースのソリューション

playerkit-scenes/

ショートフォームドラマ、中・長尺ビデオ、ライブストリーミングなどの典型的なシナリオに対して、標準化された統合例を提供します。これにより、お客様は最小限のコードで完全な再生機能を迅速に構築できます。

コアアーキテクチャ

AliPlayerKit は、プレーヤーフレームワークの構築に 3+1 のコアアーキテクチャを使用しています:

  • 3 つのランタイムインターフェイス:これらのインターフェイスは、Model-View-Controller (MVC) アーキテクチャパターンに従っており、UI 表示、再生制御、データ設定の責務を分離・独立させています。

    • AliPlayerView :インターフェイスのレンダリングとユーザーインタラクションを処理するプレーヤー UI コンポーネント (View) です。

    • AliPlayerController :再生ロジックと状態管理を処理するコントローラー (Controller) です。

    • AliPlayerModel :プレーヤーの再生設定とメディア情報をカプセル化するデータモデルコンポーネント (Model) です。

  • 1 つのグローバルインターフェイス:このインターフェイスは、フレームワークの初期化とグローバルな機能管理を提供します。プレーヤーフレームワークの統一されたエントリーポイントとして機能します。

    • AliPlayerKit :フレームワークを初期化し、グローバル設定、ログ管理、プリロードなどの基本機能を提供します。

アーキテクチャ設計

AliPlayerKit は、古典的な MVC アーキテクチャを使用してプレーヤーを独立したコンポーネントに分割しています。

コンポーネントの責務

コンポーネント

タイプ

責務

ライフサイクル

AliPlayerKit

グローバルエントリーポイント

グローバル設定、キャッシュ管理、バージョン情報。

アプリケーションレベル

AliPlayerView

View

UI 表示、スロット管理、ライフサイクルバインディング。

ページレベル

AliPlayerController

コントローラー

再生制御、状態管理、イベント配信。

ページレベル

AliPlayerModel

モデル

設定データのカプセル化、ビルダーパターン。

リクエストレベル

コアインターフェイス

各プレーヤーインスタンスで呼び出すコアインターフェイスは次のとおりです:

インターフェイス

説明

new AliPlayerController(Context)

コントローラーを作成します。

new AliPlayerModel.Builder()...build()

データモデルを構築します。

AliPlayerView.attach(controller, model)

コントローラーとデータをアタッチします。

AliPlayerView.detach()

デタッチしてリソースを解放します。

AliPlayerView.onBackPressed()

戻るボタンイベントを処理します (任意)。

説明

各コンポーネントのメソッドとパラメーターの完全なリストについては、「API リファレンス」をご参照ください。

呼び出しシーケンス

コアインターフェイスの完全な呼び出しフローは、作成、バインド、再生から解放までのライフサイクル全体を網羅します。

説明

完全な統合手順については、「クイックスタート」をご参照ください。

コア機能

スロットシステム

スロットシステムは、プレーヤー UI を独立したコンポーネントに分割します。各スロットは、上部のコントロールバー、プログレスバー、サムネイルなど、特定の機能を担当します。これらのコンポーネントは自由に組み合わせることができます。デフォルトのインターフェイスを使用して迅速に統合したり、必要に応じてコンポーネントを置き換えたり、インターフェイスを完全にカスタマイズしたりできます。UI コンポーネントはプレーヤーコアから完全に分離されています。カスタマイズにソースコードの変更は不要で、アップグレード時にコードが競合するリスクもありません。異なる再生シナリオで同じスロットコンポーネントを再利用できるため、冗長な開発を回避できます。詳細については、「スロットシステム」をご参照ください。

ポリシーシステム

ポリシーシステムは、プレーヤーのビジネスロジックを独立したポリシーコンポーネントにカプセル化します。各ポリシーは、初回フレーム統計、カクつき検出、トラフィック保護、レジューム再生など、特定の機能を実装します。フレームワークコアを変更することなく、ポリシーレイヤーを拡張できます。各ポリシーは独立した単一の責務を持ちます。ポリシーはプレーヤーインスタンス間で再利用でき、必要に応じて有効化または無効化できます。フレームワークのアップグレードとビジネスのカスタマイズは互いに干渉しません。詳細については、「ポリシーシステム」をご参照ください。

イベントシステム

イベントシステムは、Publish/Subscribe パターンを使用して AliPlayerKit コンポーネントを分離します。UI コンポーネントはイベントをサブスクライブし、コントローラーへの参照を保持することなくコマンドを送信します。コントローラーはコマンドを処理し、リスナーを意識することなく状態をパブリッシュします。このアーキテクチャは、UI とビジネスロジックの独立した開発と保守をサポートします。また、playerId を含むイベントを通じて、複数のプレーヤーインスタンス間の通信を自然に分離します。詳細については、「イベントシステム」をご参照ください。

プレーヤーライフサイクルポリシー

プレーヤーライフサイクルポリシーは、インスタンスの作成、再利用、リサイクル、および破棄を管理します。Default、Singleton、ReusePool、IdScopedPool の 4 つの組み込みポリシーが含まれています。これらのポリシーはそれぞれ、一般的なシナリオ、単一プレーヤーのシナリオ、リスト再生のシナリオ、プリロードのシナリオに適しています。ポリシーを選択するだけで、パフォーマンスとリソースのバランスを取ることができます。たとえば、ショートビデオのリストに ReusePool を使用すると、スクロールの滑らかさと初回フレームの速度が大幅に向上します。詳細については、「プレーヤーライフサイクルポリシー」をご参照ください。

ログシステム

ログシステムは、統一されたログセンターである LogHub を提供します。複数レベルの出力とフィルタリング、リスナー拡張、およびその他の機能をサポートします。これにより、プレーヤーのランタイムにおける主要なノードが完全に追跡可能になり、問題診断とパフォーマンス分析に役立ちます。開発中はデバッグのために詳細なログを有効にし、本番環境では出力を効率化できます。また、リスナーを使用してログをファイルに書き込んだり、サーバーに報告したりすることもできます。これにより、テクニカルサポートチームは問題を迅速にトラブルシューティングできます。詳細については、「ログシステム」をご参照ください。

複数のビデオソースのサポート

AliPlayerKit は、複数の種類のビデオソースをサポートしています。VidAuth 方式の使用を推奨します。詳細については、「複数のビデオソースのサポート」をご参照ください。

ソースタイプ

作成方法

シナリオ

VidAuth ソース

VideoSourceFactory.createVidAuthSource(...)

Alibaba Cloud VOD での推奨方式です (推奨)。

VidSts ソース

VideoSourceFactory.createVidStsSource(...)

Alibaba Cloud Security Token Service (STS) からの一時的な認証情報を使用します。

URL ソース

VideoSourceFactory.createUrlSource(url)

ライブストリーミングまたはシンプルなシナリオ。