Media2
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
10. Januar 2024 | 1.3.0 | - | - | - |
Abhängigkeiten deklarieren
Zum Hinzufügen einer Abhängigkeit von Media2 müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
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") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.3
Version 1.3.0
10. Januar 2024
androidx.media2:media2-*:1.3.0
wird freigegeben. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- „androidx.media2“ wurde vollständig eingestellt. Verwende stattdessen androidx.media3.
Version 1.3.0-rc01
13. Dezember 2023
androidx.media2:media2-*:1.3.0-rc01
wird ohne Änderungen gegenüber Media2 1.3.0-beta01 veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
Version 1.3.0-beta01
29. November 2023
androidx.media2:media2-*:1.3.0-beta01
wird ohne Änderungen gegenüber Media2 (1.3.0-alpha01
) veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
Version 1.3.0-alpha01
15. November 2023
androidx.media2:media2-*:1.3.0-alpha01
wird freigegeben. Version 1.3.0-alpha01 enthält diese Commits.
API-Änderungen
androidx.media2
wurde vollständig eingestellt. Verwende stattdessenandroidx.media3
. (I53164)
Version 1.2.1
Version 1.2.1
9. Februar 2022
androidx.media2:media2-*:1.2.1
wird freigegeben. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Fehlerkorrektur für die Prüfung auf benutzerdefinierte Parcelables bei Ausrichtung auf API 33.
Version 1.2.0
Version 1.2.0
15. September 2021
androidx.media2:media2-*:1.2.0
wird freigegeben. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- Unterstützung der Interoperabilität mit AndroidX-Medien von (prepare|play)From(MediaId|Uri|Search)
MEDIA_URI_PATH_SET_MEDIA_URI
undMEDIA_URI_QUERY_URI
wurden inMediaConstants
hinzugefügt
Version 1.2.0-rc01
1. September 2021
androidx.media2:media2-*:1.2.0-rc01
wird freigegeben. Version 1.2.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Der ANR-Fehler beim Schließen der Medienbenachrichtigung wurde behoben (Ifdcc2, b/148011394).
Version 1.2.0-beta01
30. Juni 2021
androidx.media2:media2-*:1.2.0-beta01
wird freigegeben. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Unterstützung der Interoperabilität mit AndroidX-Medien von (prepare|play)From(MediaId|Uri|Search)
API-Änderungen
MEDIA_URI_PATH_SET_MEDIA_URI
undMEDIA_URI_QUERY_URI
wurden zu MediaConstants hinzugefügt
Version 1.2.0-alpha01
21. April 2021
androidx.media2:media2-*:1.2.0-alpha01
wird freigegeben. Version 1.2.0-alpha01 enthält diese Commits.
API-Änderungen
- Unterstützung für (prepare|play)From(MediaId|Uri|Search) (I13475, b/176949057) hinzufügen
Fehlerkorrekturen
- Ein Deadlock-Problem, das durch unnötige synchronisierte Blöcke verursacht wurde, wurde behoben.
- Player zurücksetzen, wenn keine Elemente vorhanden sind
- „onCurrentMediaItemChanged“ darf kein Medienelement verwenden
- Benachrichtigung aktualisieren, wenn das aktuelle Medienelement geändert wird
- Interoperabilität mit der Controller-Kompatibilität direkt nach dem Erstellen der Sitzung beheben
Version 1.1.3
Version 1.1.3
21. April 2021
androidx.media2:media2-*:1.1.3
wird freigegeben. Version 1.1.3 enthält diese Commits.
Fehlerkorrekturen
- Ein Deadlock-Problem, das durch unnötige synchronisierte Blöcke verursacht wurde, wurde behoben.
Version 1.1.2
Version 1.1.2
27. Januar 2021
androidx.media2:media2-*:1.1.2
wird freigegeben. Version 1.1.2 enthält diese Commits.
Fehlerkorrekturen
- NPE aus VersionedParcelable behoben (I1ec28, b/177060207)
Version 1.1.1
Version 1.1.1
16. Dezember 2020
androidx.media2:media2-*:1.1.1
wird freigegeben. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
- Hiermit können Sie festlegen, dass die Medienbenachrichtigung aktualisiert wird, wenn das aktuelle Medienelement geändert wird.
Version 1.1.0
Version 1.1.0
2. Dezember 2020
androidx.media2:media2-*:1.1.0
wird freigegeben. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Es wurden weitere APIs für die Verarbeitung von Medientracks hinzugefügt.
- Bessere Unterstützung der Interoperabilität mit der AndroidX-Mediathek
MediaSession#setMediaUri
wurde hinzugefügt- Versuchsgruppe
MediaSessionCompat.Token
überMediaSession#getSessionCompatToken()
Version 1.1.0-rc01
28. Oktober 2020
androidx.media2:media2-*:1.1.0-rc01
wird freigegeben. Version 1.1.0-rc01 enthält diese Commits.
- Es wurde ein Problem behoben, bei dem MediaController Callbacks benachrichtigte, während eine Sperre gehalten war, was zu potenziellen Deadlocks führte (I76c56
- Es wurde ein Problem behoben, bei dem
MediaSessionImplBase#isClosed()
beim Aufrufen vongetCurrentControllerInfo()
auf einem veröffentlichtenMediaSessionCompat
abstürzen konnte. (aosp/1423291] - Media2
MediaSession
legte die aktive Warteschlangenelement-ID nicht aufPlaybackStateCompat
fest (aosp/1421652). Dieses Problem wurde behoben. - Bei der Bindung an den Dienst wurde das Flag
BIND_INCLUDE_CAPABILITIES
hinzugefügt. Damit können monitorlose Medienanwendungen auf den Standort zugreifen, wenn sie über die entsprechende Berechtigung verfügen. Das ist insbesondere für Android Auto-Apps nützlich. (aosp/1440731)
Version 1.1.0-beta01
16. September 2020
androidx.media2:media2-*:1.1.0-beta01
wird freigegeben. Version 1.1.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Aktuelle Position zurücksetzen, wenn sich das Medienelement ändert
- Metadaten und Pufferstatus bei Verbindung senden
- Absturz beim Senden großer Datenmengen zwischen einer Sitzung und einem Controller wurde behoben
<queries>
zum Manifest für Medien und Media2 für Android 11 hinzufügen- NPE für
MediaController.getPlaylist()
korrigieren - Fortschrittsanzeige von
MediaControlView
deaktivieren, wenn „Suchbefehl“ nicht zulässig ist PlaybackStateCompat
benachrichtigen, wenn sich das aktuelle Medienelement einer Sitzung geändert hat- Paketzustellung von
SessionPlayer.TrackInfo
korrigieren
Version 1.1.0-alpha01
24. Juni 2020
androidx.media2:media2-*:1.1.0-alpha01
wird freigegeben. Version 1.1.0-alpha01 enthält diese Commits.
Fehlerkorrekturen
- Zeitproblem beim Aktualisieren von Metadaten behoben (I45567, b/143999611)
- SessionResult speichert das MediaItem aus PlayerResult (I927b0, b/154885520)
- Es wurde ein Fehler behoben, bei dem
MediaController#setVolumeTo()
die falsche Stream-Lautstärke ändern konnte. (I76870, b/151204736)
Version 1.0.3
Version 1.0.3
19. Februar 2020
androidx.media2:media2-*:1.0.3
wird freigegeben. Version 1.0.3 von media2-{common,player,session}
enthält diese Commits und Version 1.0.3 von media2-widget
enthält diese Commits
Fehlerkorrekturen
- Es wurde eine NullPointerException beim Erstellen von MediaController mit einem Null-Callback behoben
- Problem behoben, bei dem
onPlaylistChanged()
nachMediaPlayer.setMediaItem
nicht aufgerufen wurde
Version 1.0.2
Version 1.0.2
5. Februar 2020
androidx.media2:media2-*:1.0.2
wird freigegeben. Version 1.0.2 von media2-{common,player,session}
enthält diese Commits und Version 1.0.2 von media2-widget
enthält diese Commits
Fehlerkorrekturen
- Ein
IndexOutOfBoundsException
inMediaPlayer#getSelectedTrack()
wurde korrigiert. (aosp/987003) - Verbesserter Umgang mit dem Fall, dass ExoPlayer getDuration() aufruft und das Mediaelement nicht vorhanden ist (aosp/987484)
- Es wurde ein Fehler behoben, bei dem ExoPlayer kein
IllegalStateException
auslöste, wenngetDuration()
imIDLE
-Status aufgerufen wurde (aosp/987246). - Benutzerdefinierte Parcelables für media2 nicht zulassen (aosp/1091056)
- Ein Problem wurde behoben, das zum Aufhängen in
close()
führte (aosp/1096455). - MediaBrowser: Verbesserte Fehlerbehandlung in
subscribe()
mitMediaBrowserService
(aosp/1158057) - Ein MediaController-Absturz mit dem Framework MediaSession(aosp/1177663) wurde behoben.
- Sitzungsinformationen nicht über Callbacks benachrichtigen, wenn die Verbindung hergestellt wird (aosp/1195030, b/142925848)
- Es wurde ein Problem behoben, bei dem ein SessionResult mehrmals unerwartet von MediaController gesendet werden konnte (aosp/1198634).
- MediaController sendete unter Umständen nicht zugelassene Befehle an MediaSession, sodass MediaSession jetzt
RESULT_ERROR_PERMISSION_DENIED
(aosp/1204183) sendet. - Ein unzuverlässiges Problem mit
MediaControllerView#setPlayer
(aosp/987004) behoben
Version 1.0.1
Version 1.0.1
9. Oktober 2019
androidx.media2:media2-*:1.0.1
wird freigegeben. Version 1.0.1 von androidx.media2:media2-{player, session}:1.0.1
enthält diese Commits und Version 1.0.1 von androidx.media2:media2-widget:1.0.1
enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine RuntimeException behoben, wenn eine Unterklasse von MediaItem über den Prozess gesendet wurde (aosp/1098971).
- MediaPlayer ruft
onCurrentMediaItemChanged()
bei der Wiedergabe einer Playlist nur einmal auf. Dieses Problem wurde behoben. - MediaPlayer konnte eine Playlist mit mehr als zwei Elementen wiedergeben (aosp/1108440). Dieses Problem wurde behoben.
- Der Player spielte weiterhin auf SurfaceView ab, obwohl er nicht sichtbar war. Dieses Problem wurde behoben.
- Es wurde ein VideoView-Wiedergabeproblem behoben, das bei einem Aufruf an
setViewType
vorsetPlayer
auftrat.
Version 1.0.0
5. September 2019
androidx.media2:media2-*:1.0.0
wird freigegeben. Dies sind die enthaltenen Commits „media2-{player, session}:1.0.0“ und die in „media2-widget:1.0.0“ enthaltenen Commits.
Hauptfunktionen von Media2 1.0.0
Media2 ist die nächste Generation der folgenden Media APIs: MediaSession
, MediaController
, MediaBrowser
, MediaBrowserService
, VideoView
und MediaControlView
.
media2.player.MediaPlayer
- APIs stimmen meistens mit
android.media.MediaPlayer
überein und die zugrunde liegende Engine ist ExoPlayer - Integrierter Audiofokus und Geräuschunterdrückung
- Implementiert SessionPlayer
- APIs stimmen meistens mit
media2.session.MediaSession
- Bietet detaillierte Berechtigungseinstellungen
- Unterstützt benutzerdefinierte Layouts
- Einfach mit SessionPlayer wie
androidx.media2.player.MediaPlayer
zu verwenden - Interoperabilität mit
MediaControllerCompat
media2.session.MediaSessionService
- Eine vereinfachte Version von
MediaLibraryService
- Bietet Verwaltung des Dienstlebenszyklus für die Hintergrundwiedergabe
- Interoperabilität mit
MediaControllerCompat
undMediaBrowserServiceCompat
- Eine vereinfachte Version von
media2.session.MediaLibraryService
- Unterstützt eine bessere Paginierung für die Navigation in Medien oder in Suchergebnissen mit vielen Elementen
- Interoperabilität mit
MediaControllerCompat
undMediaBrowserServiceCompat
media2.session.MediaController
- Kann eine Verbindung zu
MediaSession
,MediaSessionService
undMediaLibraryService
herstellen - Interoperabilität mit
MediaSessionCompat
undMediaBrowserServiceCompat
- Kann eine Verbindung zu
media2.session.MediaBrowser
- Übernimmt
MediaController
- Kann eine Verbindung zu
MediaSession
,MediaSessionService
undMediaLibraryService
herstellen - Interoperabilität mit
MediaSessionCompat
undMediaBrowserServiceCompat
- Übernimmt
media2.widget.VideoView
- Enthält alle Funktionen von
android.widget.VideoView
- Bietet den Wechsel zwischen
TextureView
undSurfaceView
- Kann mit
MediaSession
zusammenarbeiten
- Enthält alle Funktionen von
media2.widget.MediaControlView
- Besseres Design
- Enthält alle Funktionen von
android.widget.MediaController
- Bietet Auswahl des Untertiteltracks, der Wiedergabegeschwindigkeit und des Vollbildmodus
Version 1.0.0-rc02
22. August 2019
androidx.media2:media2-*:1.0.0-rc02
wurde veröffentlicht. Die in dieser Version enthaltenen Änderungen finden Sie hier. Diese Version enthält androidx.media2:media2-widget:1.0.0-rc02
. Die in dieser Version enthaltenen Änderungen finden Sie hier.
Neue Funktionen
setPlayer
odersetController
dürfen nicht mehr überMediaControlView
(MCV) aufgerufen werden, wennMediaControlView
zu einerVideoView
gehört
Fehlerkorrekturen
MediaControlView
: Die Schaltflächen „Weiter“ und „Zurück“ sind nur anklickbar, wenn Medienelemente vorhanden sindMediaControlView
: Ein instabilesNullPointerException
-Objekt wurde behoben, wennonAttachedToWindow()
aufgerufen wird.- Das Media2-Widget verarbeitet die Metadaten des neuen Medienelements jetzt korrekt, wenn sich das aktuelle Medienelement geändert hat.
Media2-Widget-Version 1.0.0-beta01
2. Juli 2019
androidx.media2:media2-widget:1.0.0-beta01
wird freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Hintergrundwiedergabe: Anstatt einen Player innerhalb von VideoView zu erstellen, kann VideoView SessionPlayer oder MediaController übernehmen, sodass die App nahtlos in den Hintergrundwiedergabemodus wechseln kann.
- Abhängigkeit für „media2-player-Mediathek“ entfernt
onViewTypeChangedListener
wurde hinzugefügt
API-Änderungen
- Änderung der Sichtbarkeit von „Öffentlich“ zu „Geschützt“:
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- Entfernt:
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- Hinzugefügt:
VideoView.setMediaController(MediaController)
VideoView.getMediaControlView()
VideoView.setMediaController(MediaController)
VideoView.setPlayer(SessionPlayer)
VideoView.setOnViewTypeChangedListener()
MediaControlView.setPlayer(SessionPlayer)
MediaControlView.setMediaController(MediaContoller)
Version 1.0.0-rc01
18. Juni 2019
androidx.media2:media2-common:1.0.0-rc01
, androidx.media2:media2-player:1.0.0-rc01
und androidx.media2:media2-session:1.0.0-rc01
wurden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
Abhängigkeiten von
ListenableFuture
wurden zurück zur eigenständigen Guava-Implementierung migriert.Wenn Sie Testziele haben, die vom vollständigen Guava-Artefakt abhängen, kann bei Verwendung bestimmter Versionen des Android-Gradle-Plug-ins ein Konflikt bei der Abhängigkeitsauflösung auftreten. Wenn der Fehler
Could not resolve all artifacts
in Bezug aufListenableFuture
auftritt, können Sie das Problem vorübergehend umgehen, indem Sieandroid.dependency.useConstraints=false
der Build-Konfiguration Ihres Projekts hinzufügen. Wir arbeiten derzeit an einer dauerhaften Lösung für das Android Gradle-Plug-in, die zu einem späteren Zeitpunkt veröffentlicht wird.
Version 1.0.0-beta02
5. Juni 2019
androidx.media2:media2-common:1.0.0-beta02
, androidx.media2:media2-player:1.0.0-beta02
und androidx.media2:media2-session:1.0.0-beta02
wurden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Wird eine negative Wiedergabegeschwindigkeit für androidx.media.player.MediaPlayer festgelegt, wird Result_ERROR_BAD_VALUE zurückgegeben.
- Guava ListenableFuture durch Jetpack-Implementierung ersetzen (aosp/968828)
Version 1.0.0-beta01
7. Mai 2019
androidx.media2:media2-common:1.0.0-beta01
, androidx.media2:media2-player:1.0.0-beta01
und androidx.media2:media2-session:1.0.0-beta01
wurden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Die Bibliotheken sind in drei Teile unterteilt: „media2-common“, „media2-player“ und „media2-session“.
IllegalPointerException
wurde für die Null-Argumente, die als @NonNull gekennzeichnet sind, inNullPointerException
geändert.
API-Änderungen
- Einführung von
MediaController.Builder
- Für die optionalen Felder von
FileMediaItem.Builder
wurden Setter-Methoden hinzugefügt MediaController
undMediaBrowser
können die Verbindungshinweise der Anwendung anMediaSession
,MediaSessionService
oderMediaLibraryService
senden- Einige Methoden wurden so umbenannt, dass sie den APIs von Android 10 Media2 entsprechen.
Version 1.0.0-alpha04
17. Dezember 2018
API-Änderungen
- Die folgenden Klassen wurden umbenannt:
MediaPlayer2
→MediaPlayer
MediaSession2
→MediaSession
MediaController2
→MediaController
MediaSessionService2
→MediaSessionService
MediaLibraryService2
→MediaLibraryService
MediaBrowser2
→MediaBrowser
MediaMetadata2
→MediaMetadata
Rating2
→Rating
SessionToken2
→SessionToken
SessionCommand2
→SessionCommand
SessionCommandGroup2
→SessionCommandGroup
- Folgende Klassen wurden zusammengeführt:
DataSourceDesc2
undMediaItem2
wurden zuMediaItem
zusammengefasstMediaPlaylistAgent
undMediaPlayerConnector
wurden zuSessionPlayer
zusammengefasst
- Die folgenden abgeleiteten Klassen von
Rating
wurden hinzugefügt:HeartRating
,PercentageRating
,StarRating
undThumbRating
Media2
verwendet jetztListenableFuture
für asynchrone Methoden