Compose ベースの UI のスタートガイド

依存関係を追加する

Media3 ライブラリには、Jetpack Compose ベースの UI モジュールが 2 つ含まれています。Material3 のものはコアのものに依存しているため、両方を追加する必要はありません。

Kotlin

// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.11.1")
implementation("androidx.media3:media3-ui-compose-material3:1.11.1")

Groovy

// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.11.1"
implementation "androidx.media3:media3-ui-compose-material3:1.11.1"

Compose ファーストでアプリを開発するか、ビューの使用から移行することを強くおすすめします。

完全な Compose デモアプリ

media3-ui-compose ライブラリには、すぐに使えるコンポーザブル(ボタン、インジケーター、画像、ダイアログなど)は含まれていませんが、PlayerView を AndroidView でラップするなどの相互運用ソリューションを回避する、完全に Compose で記述されたデモアプリがあります。デモアプリでは、media3-ui-compose モジュールと Compose Material3 ライブラリの UI 状態ホルダー クラスを使用します。

必要なライブラリ

必要なカスタマイズのレベルに応じて、2 つの Media3 Compose ライブラリから選択できます。この違いを理解するには、UI 状態生成パイプライン(Business logic → UI logic → UI)について考えるとわかりやすいでしょう。

media3-ui-compose を使用して、UI コンポーネントを完全に制御する。

このライブラリは Business logic → UI logic 接続を提供します。PlayerSurface や ContentFrame などの基本的なコンポーネントと、Player 状態を UI 状態に変換する状態ホルダー クラス(PlayPauseButtonState、CurrentMediaItemState、PlaylistState、ErrorState など)が含まれています。

このライブラリは、すぐに使用できるマテリアル デザイン コンポーネントを提供するものではありません。独自の UI コンポーネントを構築し、スタイルを設定する必要があります。ルック アンド フィールを最大限に制御できるため、高度にカスタマイズされたデザイン システムがある場合に最適です。

media3-ui-compose-material3 を使用して、マテリアル デザインとの統合を高速化します。

このライブラリは、パイプラインの最後の UI 部分を提供します。media3-ui-compose に依存し、Material3 コンポーネントでスタイル設定された、事前構築済みのコンポーズ可能な関数(Player や MiniController のコンポーザブルなど)が含まれています。Player コンポーザブルは、動画、コントロール、進行状況バーを備えた包括的なメディア再生エクスペリエンスを提供します。これは、PlayerDefaults を使用してさらにカスタマイズできます。MiniController コンポーザブルは、現在のメディア アイテムに関する情報を表示しながら、プレーヤーを制御するためのコンパクトなアフォーダンスを提供します。独自のボタンやその他の UI 要素をゼロから作成する必要がなくなります。これらのコンポーネントのテーマ、色、アイコンはカスタマイズできますが、コア実装は提供されています。

概要

機能 media3-ui-compose media3-ui-compose-material3
UI コンポーネント PlayerSurface や ContentFrame などの基本要素。ただし、スタイル設定済みのボタンやコントロールはありません。 Player コンポーザブルと MiniController コンポーザブル、および PlayPauseButton、SeekBackButton、PositionAndDurationText、ErrorText などの事前ビルドされた Material3 スタイルのコンポーザブルの完全なセットを提供します。
状態管理 ロジックを管理する remember...State ホルダーを提供します。 状態を内部で管理しますが、必要に応じて状態ホルダーにアクセスすることもできます。
依存関係 androidx.compose.foundation media3-ui-compose、androidx.compose.material3、com.google.android.material
主なユースケース カスタム デザイン システムを使用したプレーヤー UI の構築。デザインを完全に制御できます。 マテリアル デザイン 3 のガイドラインに沿ったプレーヤー UI を迅速に構築する。