このドキュメントでは、AliPlayerKit を迅速に統合する方法について、グローバル初期化からコンポーネントレイヤーとシーンレイヤーの統合までを説明します。
開始する前に、「統合の準備」の説明に従って、環境を設定し、必要な依存関係が追加されていることを確認してください。
AI 活用ヒント:このドキュメントは、AI が解析しやすいように構成されています。開発ワークフローを加速するための Skills として使用できます。
AliPlayerKit のミニマルな API により、少ないコードで動画再生機能を迅速に統合できます。
統合オプションの選択
AliPlayerKit は階層化アーキテクチャを採用しており、コンポーネントレイヤーとシーンレイヤーの両方の統合を提供します。ビジネスニーズに最も適したオプションを選択してください:
統合オプション | モジュール | 説明 | ユースケース |
コンポーネントレイヤーの統合 |
| 設定可能なプレーヤー UI コンポーネントが含まれている、 | カスタムのプレーヤー UI や、再生動作の柔軟な制御が必要な場合。 |
シーンレイヤーの統合 |
| コンポーネントレイヤー上に構築された、一般的なシナリオ向けの完全なビルド済みソリューションを提供します。 | 長尺動画、短尺動画、ライブストリーミングなどの標準的な再生シナリオを迅速に実装する場合。 |
シーンレイヤーはコンポーネントレイヤーに依存しているため、まずコンポーネントレイヤーの統合を完了する必要があります。
グローバル初期化
グローバル初期化のために、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 ディレクトリにあります。利用可能なモジュールは次のとおりです:
シーンモジュール | 説明 |
| 共通シーンモジュール (必須)。他のシーンモジュールはこれに依存します。 |
| 長尺動画再生のための完全なソリューションを提供します。 |
| スワイプベースの短尺動画再生のための完全なソリューションを提供します。 |
| ライブストリーミング再生のための完全なソリューションを提供します。 |
| プレイリスト再生のための完全なソリューションを提供します。 |
ステップ 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:典型的な再生シナリオのソリューションを提供します。