依存関係を追加する
Kotlin
implementation("androidx.media3:media3-ui:1.9.2")
Groovy
implementation "androidx.media3:media3-ui:1.9.2"
PlayerView
最も重要なコンポーネントは、メディア再生用のビューである PlayerView です。
PlayerView には、再生中に動画、画像、字幕、アルバムアートが表示されるほか、
再生コントロールも表示されます。
PlayerView には、setPlayer() インスタンスを接続および接続解除(
null を渡す)するための Player メソッドがあります。
PlayerView は、動画、画像、音声の再生に使用できます。動画再生の場合は動画と字幕、画像再生の場合はビットマップがレンダリングされ、音声ファイルにメタデータとして含まれるアートワークを表示できます。他の UI コンポーネントと同様に、レイアウト ファイルに含めることができます
。たとえば、PlayerView
は次の XML で含めることができます。
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
上記のスニペットは、PlayerView に複数の属性があることを示しています。
これらの属性を使用して、ビューの動作と
ルック&フィールをカスタマイズできます。これらの属性のほとんどには、対応するセッター メソッドがあり、これら
は実行時にビューをカスタマイズするために使用できます。PlayerView のドキュメントには、これらの属性とセッター メソッドが詳しく記載されています。
ユーザー エクスペリエンスを向上させるには、ExoPlayer を使用している場合は、keepScreenOn
Android 属性を追加するか、ウェイクロックを設定することを検討してください。デバイスをスリープさせないようにする他のアクションについては、バックグラウンド処理
のページをご覧ください。
android:keepScreenOn="true"
レイアウト ファイルでビューを宣言したら、アクティビティの
onCreate メソッドで検索できます。
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
プレーヤーが初期化されたら、
setPlayer を呼び出してビューに接続できます。
Kotlin
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
Java
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
PlayerControlView
PlayerControlView は、PlayerView のサブビューの 1 つで、
プログレスバーと再生を制御するボタンを含みます。PlayerControlView は
PlayerView の外部でスタンドアロン コンポーネントとして使用することを目的としていません。PlayerView に属性を設定してカスタマイズできます(PlayerControlView に渡されます)。また、android:id="@id/exo_controller を使用してカスタム コントローラを提供することもできます。
サーフェス タイプを選択する
PlayerView の surface_type 属性を使用すると、動画再生に使用するサーフェスのタイプを設定できます。使用できる値は、surface_view、texture_view、
spherical_gl_surface_view(球体動画
再生用の特別な値)、video_decoder_gl_surface_view(拡張レンダラを使用した動画レンダリング用)、none(音声再生専用)です。選択するサーフェス タイプの詳細については、
サーフェスのページをご覧ください。