Media2
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 1 月 10 日 | 1.3.0 | - | - | - |
依存関係の宣言
Media2 への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { def media2_version = "1.3.0" // Interacting with MediaSessions implementation "androidx.media2:media2-session:$media2_version" // optional - UI widgets for VideoView and MediaControlView implementation "androidx.media2:media2-widget:$media2_version" // optional - Implementation of a SessionPlayer implementation "androidx.media2:media2-player:$media2_version" }
Kotlin
dependencies { val media2_version = "1.3.0" // Interacting with MediaSessions implementation("androidx.media2:media2-session:$media2_version") // optional - UI widgets for VideoView and MediaControlView implementation("androidx.media2:media2-widget:$media2_version") // optional - Implementation of a SessionPlayer implementation("androidx.media2:media2-player:$media2_version") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.3
バージョン 1.3.0
2024 年 1 月 10 日
androidx.media2:media2-*:1.3.0
がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください。
1.2.0 以降の重要な変更
- androidx.media2 が完全に非推奨になりました。代わりに androidx.media3 を使用してください。
バージョン 1.3.0-rc01
2023 年 12 月 13 日
androidx.media2:media2-*:1.3.0-rc01
がリリースされました。Media2 1.3.0-beta01 からの変更はありません。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-beta01
2023 年 11 月 29 日
androidx.media2:media2-*:1.3.0-beta01
がリリースされました。Media2 の 1.3.0-alpha01
からの変更はありません。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-alpha01
2023 年 11 月 15 日
androidx.media2:media2-*:1.3.0-alpha01
がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
androidx.media2
が完全に非推奨になりました。代わりにandroidx.media3
を使用してください。(I53164)
バージョン 1.2.1
バージョン 1.2.1
2022 年 2 月 9 日
androidx.media2:media2-*:1.2.1
がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください。
バグの修正
- API 33 をターゲットとする場合のカスタム Parcelable のチェックを修正しました。
バージョン 1.2.0
バージョン 1.2.0
2021 年 9 月 15 日
androidx.media2:media2-*:1.2.0
がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の重要な変更
- (prepare|play)From(MediaId|Uri|Search) の AndroidX メディアとの相互運用性をサポートします
MediaConstants
にMEDIA_URI_PATH_SET_MEDIA_URI
とMEDIA_URI_QUERY_URI
を追加しました
バージョン 1.2.0-rc01
2021 年 9 月 1 日
androidx.media2:media2-*:1.2.0-rc01
がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
- メディア通知を閉じる際の ANR を修正しました(Ifdcc2、b/148011394)
バージョン 1.2.0-beta01
2021 年 6 月 30 日
androidx.media2:media2-*:1.2.0-beta01
がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- (prepare|play)From(MediaId|Uri|Search) の AndroidX メディアとの相互運用性をサポートします
API の変更
- MediaConstants に
MEDIA_URI_PATH_SET_MEDIA_URI
とMEDIA_URI_QUERY_URI
を追加しました
バージョン 1.2.0-alpha01
2021 年 4 月 21 日
androidx.media2:media2-*:1.2.0-alpha01
がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
- (prepare|play)From(MediaId|Uri|Search) のサポートを追加しました(I13475、b/176949057)
バグの修正
- 不必要な同期ブロックに起因するデッドロックの問題を修正しました
- 再生可能なアイテムがない場合にプレーヤーがリセットされるようになりました
- null のメディア アイテムを onCurrentMediaItemChanged が取得できるようになりました
- 現在のメディア アイテムが変更されたときに、通知が更新されるようになりました
- セッション作成後のコントローラの compat right との相互運用性を修正しました
バージョン 1.1.3
バージョン 1.1.3
2021 年 4 月 21 日
androidx.media2:media2-*:1.1.3
がリリースされました。バージョン 1.1.3 に含まれる commit については、こちらをご覧ください。
バグの修正
- 不必要な同期ブロックに起因するデッドロックの問題を修正しました
バージョン 1.1.2
バージョン 1.1.2
2021 年 1 月 27 日
androidx.media2:media2-*:1.1.2
がリリースされました。バージョン 1.1.2 に含まれる commit については、こちらをご覧ください。
バグの修正
- VersionedParcelable の NPE を修正しました(I1ec28、b/177060207)
バージョン 1.1.1
バージョン 1.1.1
2020 年 12 月 16 日
androidx.media2:media2-*:1.1.1
がリリースされました。バージョン 1.1.1 に含まれる commit については、こちらをご覧ください。
バグの修正
- 現在のメディア アイテムが変更されたときに、メディア通知が更新されるようになりました。
バージョン 1.1.0
バージョン 1.1.0
2020 年 12 月 2 日
androidx.media2:media2-*:1.1.0
がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の主な変更
- メディア トラックを処理する複数の API を追加
- AndroidX メディア ライブラリとの相互運用性のサポートを向上
MediaSession#setMediaUri
を追加しましたMediaSession#getSessionCompatToken()
を介してMediaSessionCompat.Token
を公開しました
バージョン 1.1.0-rc01
2020 年 10 月 28 日
androidx.media2:media2-*:1.1.0-rc01
がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。
- MediaController がロックを保持中にコールバックを通知し、それによってデッドロックが発生する可能性がある問題を修正しました。(I76c56)
- リリースされた
MediaSessionCompat
でgetCurrentControllerInfo()
を呼び出すとMediaSessionImplBase#isClosed()
がクラッシュすることがある問題を修正しました。(aosp/1423291) - media2 の
MediaSession
がPlaybackStateCompat
にアクティブ キュー アイテム ID を設定しなかった問題を修正しました。(aosp/1421652) - サービスへのバインド時に
BIND_INCLUDE_CAPABILITIES
フラグを追加しました。これにより、ヘッドレス メディア アプリケーションが位置情報へのアクセス権限を持っている場合、位置情報にアクセスできるようになります。これは特に Android Auto アプリで役立ちます。(aosp/1440731)
バージョン 1.1.0-beta01
2020 年 9 月 16 日
androidx.media2:media2-*:1.1.0-beta01
がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
バグの修正
- メディア アイテムが変更されたときに現在の位置をリセット
- 接続時にメタデータとバッファリング状態を送信
- セッションとコントローラの間で大規模なデータを送信するときのクラッシュを修正
<queries>
を media と media2(Android 11 の場合)のマニフェストに追加MediaController.getPlaylist()
の NPE を修正- seek コマンドが許可されていない場合に
MediaControlView
の進行状況バーを無効化 - セッションの現在のメディア アイテムが変更されたときに
PlaybackStateCompat
に通知 SessionPlayer.TrackInfo
のパーセリングを修正
バージョン 1.1.0-alpha01
2020 年 6 月 24 日
androidx.media2:media2-*:1.1.0-alpha01
がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
バグの修正
- メタデータ更新時のタイミングの問題を修正(I45567、b/143999611)
- SessionResult には PlayerResult からの MediaItem が保持されます(I927b0、b/154885520)
MediaController#setVolumeTo()
がストリームの音量を間違えて変更するバグを修正しました(I76870、b/151204736)
バージョン 1.0.3
バージョン 1.0.3
2020 年 2 月 19 日
androidx.media2:media2-*:1.0.3
がリリースされました。media2-{common,player,session}
バージョン 1.0.3 に含まれる commit と、media2-widget
バージョン 1.0.3 に含まれるcommit があります。
バグの修正
- null コールバックで MediaController を作成するときの NullPointerException を修正
MediaPlayer.setMediaItem
の後にonPlaylistChanged()
が呼び出されなかった問題を修正
バージョン 1.0.2
バージョン 1.0.2
2020 年 2 月 5 日
androidx.media2:media2-*:1.0.2
がリリースされました。media2-{common,player,session}
バージョン 1.0.2 に含まれる commit と、media2-widget
バージョン 1.0.2 に含まれる commit があります。
バグの修正
MediaPlayer#getSelectedTrack()
のIndexOutOfBoundsException
を修正しました。(aosp/987003)- ExoPlayer が getDuration() を呼び出し、メディア アイテムが存在しない場合の処理を改善(aosp/987484)
getDuration()
がIDLE
状態で呼び出されたときに ExoPlayer がIllegalStateException
をスローしないバグを修正(aosp/987246)- media2 のカスタム Parcelable を許可しない(aosp/1091056)
close()
でハングアップを引き起こしていた問題を修正(aosp/1096455)- MediaBrowser:
MediaBrowserService
でのsubscribe()
のエラー処理を改善(aosp/1158057) - Framework MediaSession での MediaController のクラッシュを修正(aosp/1177663)
- 接続が確立されたときにコールバックを介してセッション情報を通知しない(aosp/1195030、b/142925848)
- MediaController から SessionResult が予期せず複数回送信される問題を修正(aosp/1198634)
- MediaController が許可されていないコマンドを MediaSession に送信することがある問題を修正。MediaSession が
RESULT_ERROR_PERMISSION_DENIED
を送信するようになりました(aosp/1204183) MediaControllerView#setPlayer
の不安定な問題を修正(aosp/987004)
バージョン 1.0.1
バージョン 1.0.1
2019 年 10 月 9 日
androidx.media2:media2-*:1.0.1
がリリースされました。androidx.media2:media2-{player, session}:1.0.1
バージョン 1.0.1 に含まれる commit と、androidx.media2:media2-widget:1.0.1
バージョン 1.0.1 に含まれる commitがあります。
バグの修正
- MediaItem のサブクラスがプロセス全体に送信された場合の RuntimeException を修正(aosp/1098971)
- MediaPlayer がプレイリストの再生時に
onCurrentMediaItemChanged()
を 1 回だけ呼び出す問題を修正 - MediaPlayer で 3 つ以上のアイテムを含むプレイリストを再生できる問題を修正(aosp/1108440)
- プレーヤーが非表示であっても SurfaceView で再生し続ける問題を修正
setPlayer
の前にsetViewType
を呼び出したときに発生する VideoView の再生問題を修正
バージョン 1.0.0
2019 年 9 月 5 日
androidx.media2:media2-*:1.0.0
がリリースされました。media2-{player, session}:1.0.0 に含まれる commit と、media2-widget:1.0.0 に含まれる commit があります。
Media2 1.0.0 の主な機能
Media2 は、Media API(MediaSession
、MediaController
、MediaBrowser
、MediaBrowserService
、VideoView
、MediaControlView
)の次世代の API です。
media2.player.MediaPlayer
android.media.MediaPlayer
とほぼ一致する API 群。基礎となるエンジンは ExoPlayer- 組み込みの音声フォーカスとノイズ処理を装備
- SessionPlayer を実装
media2.session.MediaSession
- きめ細かい権限制御を提供
- カスタム レイアウトをサポート
- 次のような SessionPlayer で簡単に使用可能:
androidx.media2.player.MediaPlayer
MediaControllerCompat
と相互運用が可能
media2.session.MediaSessionService
MediaLibraryService
の軽量バージョン- バックグラウンド再生のサービス ライフサイクル管理を提供
MediaControllerCompat
、MediaBrowserServiceCompat
と相互運用が可能
media2.session.MediaLibraryService
- メディア アイテム、または多くのアイテムを保持する検索結果をナビゲートするための改善されたページネーションをサポート
MediaControllerCompat
、MediaBrowserServiceCompat
と相互運用が可能
media2.session.MediaController
MediaSession
、MediaSessionService
、MediaLibraryService
に接続可能MediaSessionCompat
、MediaBrowserServiceCompat
と相互運用が可能
media2.session.MediaBrowser
MediaController
を継承MediaSession
、MediaSessionService
、MediaLibraryService
に接続可能MediaSessionCompat
、MediaBrowserServiceCompat
と相互運用が可能
media2.widget.VideoView
android.widget.VideoView
のすべての機能を含有TextureView
とSurfaceView
の間の切り替えMediaSession
との連携が可能
media2.widget.MediaControlView
- ルック アンド フィールを改善
android.widget.MediaController
のすべての機能を含有- 字幕トラックの選択機能、再生速度の選択機能、全画面モードを提供
バージョン 1.0.0-rc02
2019 年 8 月 22 日
androidx.media2:media2-*:1.0.0-rc02
がリリースされました。このバージョンに含まれる変更については、こちらをご覧ください。このリリースには androidx.media2:media2-widget:1.0.0-rc02
が含まれています。このバージョンに含まれる変更については、こちらをご覧ください。
新機能
MediaControlView
がVideoView
に含まれる場合、MediaControlView
(MCV)を介してsetPlayer
またはsetController
を呼び出すことはできなくなりました
バグの修正
MediaControlView
: 次へボタンまたは戻るボタンは、次または前のメディア アイテムがある場合にのみクリック可能になりましたMediaControlView
:onAttachedToWindow()
が呼び出されたときのNullPointerException
が不安定な問題を修正しました- 現在のメディア アイテムが変更されたときに、Media2 ウィジェットが新しいメディア アイテムのメタデータを適切に処理するようになりました
Media2-Widget バージョン 1.0.0-beta01
2019 年 7 月 2 日
androidx.media2:media2-widget:1.0.0-beta01
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
新機能
- バックグラウンド再生: VideoView 内でプレーヤーを作成する代わりに、VideoView は SessionPlayer または MediaController を使用して、アプリがバックグラウンド再生モードにシームレスに移行できるようにします。
- media2-player ライブラリの依存関係を削除しました。
onViewTypeChangedListener
を追加しました。
API の変更
- 可視性を公開から保護対象に変更
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- 削除
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- 追加
VideoView.setMediaController(MediaController)
VideoView.getMediaControlView()
VideoView.setMediaController(MediaController)
VideoView.setPlayer(SessionPlayer)
VideoView.setOnViewTypeChangedListener()
MediaControlView.setPlayer(SessionPlayer)
MediaControlView.setMediaController(MediaContoller)
バージョン 1.0.0-rc01
2019 年 6 月 18 日
androidx.media2:media2-common:1.0.0-rc01
、androidx.media2:media2-player:1.0.0-rc01
、androidx.media2:media2-session:1.0.0-rc01
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
API の変更
ListenableFuture
への依存関係は、元のように Guava のスタンドアロン実装に移行されました。完全な Guava アーティファクトに依存するテスト ターゲットがある場合、Android Gradle プラグインの特定のバージョンを使用すると、依存関係の解決の競合が発生する可能性があります。
ListenableFuture
に関連する「Could not resolve all artifacts
」エラーが発生する場合、プロジェクトのビルド構成にandroid.dependency.useConstraints=false
を追加することで、一時的に問題を回避できます。現在 Google は、後日リリースすることを期して Android Gradle プラグイン内の恒久的な修正に取り組んでいます。
バージョン 1.0.0-beta02
2019 年 6 月 5 日
androidx.media2:media2-common:1.0.0-beta02
、androidx.media2:media2-player:1.0.0-beta02
、androidx.media2:media2-session:1.0.0-beta02
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
バグの修正
- androidx.media.player.MediaPlayer で負数の再生速度を設定すると、RESULT_ERROR_BAD_VALUE が返されます。
- Guava ListenableFuture を Jetpack 実装に置き換えます(aosp/968828)
バージョン 1.0.0-beta01
2019 年 5 月 7 日
androidx.media2:media2-common:1.0.0-beta01
、androidx.media2:media2-player:1.0.0-beta01
、androidx.media2:media2-session:1.0.0-beta01
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
新機能
- ライブラリが 3 つの部分(media2-common、media2-player、media2-session)に分けられました
- @NonNull としてマークされた null 引数の
IllegalPointerException
をNullPointerException
に変更しました。
API の変更
MediaController.Builder
を導入しましたFileMediaItem.Builder
のオプション フィールドにセッター メソッドを追加しましたMediaController
とMediaBrowser
が、アプリの接続ヒントをMediaSession
、MediaSessionService
、またはMediaLibraryService
に送信できるようになりました- 一部のメソッドの名前を Android 10 Media2 API に合わせて変更しました
バージョン 1.0.0-alpha04
2018 年 12 月 17 日
API の変更
- 次のクラスの名前を変更しました。
MediaPlayer2
→MediaPlayer
MediaSession2
→MediaSession
MediaController2
→MediaController
MediaSessionService2
→MediaSessionService
MediaLibraryService2
→MediaLibraryService
MediaBrowser2
→MediaBrowser
MediaMetadata2
→MediaMetadata
Rating2
→Rating
SessionToken2
→SessionToken
SessionCommand2
→SessionCommand
SessionCommandGroup2
→SessionCommandGroup
- 次のクラスをマージしました。
DataSourceDesc2
とMediaItem2
がMediaItem
に統合されましたMediaPlaylistAgent
とMediaPlayerConnector
がSessionPlayer
に統合されました
Rating
のサブクラス(HeartRating
、PercentageRating
、StarRating
、ThumbRating
)を追加しましたMedia2
は非同期メソッドにListenableFuture
を使用するようになりました