ビューベースの UI のスタートガイド

依存関係を追加する

Kotlin

implementation("androidx.media3:media3-ui:1.6.0")

Groovy

implementation "androidx.media3:media3-ui:1.6.0"

PlayerView

最も重要なコンポーネントは、メディア再生用のビューである PlayerView です。PlayerView は、再生中に動画、画像、字幕、アルバムアート、再生コントロールを表示します。

PlayerView には、Player インスタンスを接続および切断する(null を渡す)setPlayer() メソッドがあります。

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 のドキュメントでは、これらの属性と setter メソッドについて詳しく説明しています。

レイアウト ファイルでビューを宣言したら、アクティビティの 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 でカスタム コントローラを指定することでカスタマイズできます。

サーフェス タイプを選択する

PlayerViewsurface_type 属性を使用すると、動画の再生に使用するサーフェスのタイプを設定できます。使用できる値は、surface_viewtexture_viewspherical_gl_surface_view(球面動画の再生用の特別な値)、video_decoder_gl_surface_view(拡張機能レンダラを使用した動画レンダリング用)、none(音声再生のみ)です。選択するサーフェス タイプについて詳しくは、サーフェス ページをご覧ください。