依存関係を追加する
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
でカスタム コントローラを指定することでカスタマイズできます。
サーフェス タイプを選択する
PlayerView
の surface_type
属性を使用すると、動画の再生に使用するサーフェスのタイプを設定できます。使用できる値は、surface_view
、texture_view
、spherical_gl_surface_view
(球面動画の再生用の特別な値)、video_decoder_gl_surface_view
(拡張機能レンダラを使用した動画レンダリング用)、none
(音声再生のみ)です。選択するサーフェス タイプについて詳しくは、サーフェス ページをご覧ください。