Media2
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
10. Januar 2024 | 1.3.0 | - | – | - |
Abhängigkeiten deklarieren
Wenn du eine Abhängigkeit von Media2 hinzufügen möchtest, musst du deinem 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 App oder Ihr Modul die Abhängigkeiten für die erforderlichen Artefakte hinzu:
Cool
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
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
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 veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- androidx.media2 ist jetzt vollständig eingestellt. Verwenden Sie 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 von 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 veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
API-Änderungen
androidx.media2
ist jetzt vollständig eingestellt. Verwenden Sie stattdessenandroidx.media3
. (I53164)
Version 1.2.1
Version 1.2.1
9. Februar 2022
androidx.media2:media2-*:1.2.1
wird veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei der Prüfung auf benutzerdefinierte Parcelables beim Targeting auf API 33 behoben
Version 1.2.0
Version 1.2.0
15. September 2021
androidx.media2:media2-*:1.2.0
wird veröffentlicht. 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
inMediaConstants
hinzugefügt
Version 1.2.0-rc01
1. September 2021
androidx.media2:media2-*:1.2.0-rc01
wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- ANR beim Schließen einer Medienbenachrichtigung behoben (Ifdcc2, b/148011394)
Version 1.2.0-beta01
30. Juni 2021
androidx.media2:media2-*:1.2.0-beta01
wird veröffentlicht. 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
in MediaConstants hinzugefügt
Version 1.2.0-alpha01
21. April 2021
androidx.media2:media2-*:1.2.0-alpha01
wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
API-Änderungen
- Unterstützung für (prepare|play)From(MediaId|Uri|Search) hinzugefügt (I13475, b/176949057)
Fehlerkorrekturen
- Behebung eines Deadlock-Problems, das durch unnötige synchronisierte Blöcke verursacht wurde.
- Player zurücksetzen, wenn keine abspielbaren Elemente vorhanden sind
- onCurrentMediaItemChanged darf ein null-Medienelement annehmen
- Benachrichtigung aktualisieren, wenn sich das aktuelle Medienelement ändert
- Probleme mit der Interoperabilität mit 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 veröffentlicht. Version 1.1.3 enthält diese Commits.
Fehlerkorrekturen
- Behebung eines Deadlock-Problems, das durch unnötige synchronisierte Blöcke verursacht wurde.
Version 1.1.2
Version 1.1.2
27. Januar 2021
androidx.media2:media2-*:1.1.2
wird veröffentlicht. Version 1.1.2 enthält diese Commits.
Fehlerkorrekturen
- Korrigierter Null-Pointer-Ausnahmefehler von VersionedParcelable (I1ec28, b/177060207)
Version 1.1.1
Version 1.1.1
16. Dezember 2020
androidx.media2:media2-*:1.1.1
wird veröffentlicht. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
- Die Medienbenachrichtigung wird aktualisiert, wenn sich das aktuelle Medienelement ändert.
Version 1.1.0
Version 1.1.0
2. Dezember 2020
androidx.media2:media2-*:1.1.0
wird veröffentlicht. 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-Medienbibliothek
- „
MediaSession#setMediaUri
“ wurde hinzugefügt - Anzeigenkontakt mit
MediaSessionCompat.Token
überMediaSession#getSessionCompatToken()
- „
Version 1.1.0-rc01
28. Oktober 2020
androidx.media2:media2-*:1.1.0-rc01
wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
- Ein Problem wurde behoben, bei dem die MediaController Callbacks benachrichtigte, während eine Sperre gehalten wurde, was zu potenziellen Deadlocks führen konnte (I76c56).
- Ein Problem wurde behoben, durch das
MediaSessionImplBase#isClosed()
abstürzen konnte, wenngetCurrentControllerInfo()
auf eine freigegebeneMediaSessionCompat
aufgerufen wurde. (aosp/1423291] - Ein Problem wurde behoben, bei dem media2
MediaSession
die ID des aktiven Warteschlangenelements nicht aufPlaybackStateCompat
gesetzt hat (aosp/1421652) - Beim Binden an den Dienst wurde das Flag
BIND_INCLUDE_CAPABILITIES
hinzugefügt, das es headless-Medienanwendungen ermöglicht, bei Berechtigung auf den Standort zuzugreifen. Das ist besonders 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 veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Aktuelle Position zurücksetzen, wenn sich das Medienelement ändert
- Metadaten und Zwischenspeicherstatus senden, wenn eine Verbindung besteht
- Absturz beim Senden großer Daten zwischen einer Sitzung und einem Controller behoben
<queries>
dem Manifest für „media“ und „media2“ für Android 11 hinzufügen- NPE für
MediaController.getPlaylist()
beheben - Fortschrittsanzeige von
MediaControlView
deaktivieren, wenn der Befehl zum Springen nicht zulässig ist PlaybackStateCompat
benachrichtigen, wenn sich das aktuelle Medienelement einer Sitzung geändert hat- Parzellierung von
SessionPlayer.TrackInfo
korrigieren
Version 1.1.0-alpha01
24. Juni 2020
androidx.media2:media2-*:1.1.0-alpha01
wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Fehlerkorrekturen
- Behobenes Zeitproblem bei der Aktualisierung von Metadaten (I45567, b/143999611)
- In SessionResult wird das MediaItem aus PlayerResult beibehalten (I927b0, b/154885520)
- Ein Fehler wurde behoben, durch den
MediaController#setVolumeTo()
das falsche Streamvolumen ändern konnte. (I76870, b/151204736)
Version 1.0.3
Version 1.0.3
19. Februar 2020
androidx.media2:media2-*:1.0.3
wird veröffentlicht. 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
- Behebung einer NullPointerException beim Erstellen einer MediaController mit einem Null-Callback
- Das Problem, dass
onPlaylistChanged()
nachMediaPlayer.setMediaItem
nicht aufgerufen wurde, wurde behoben.
Version 1.0.2
Version 1.0.2
5. Februar 2020
androidx.media2:media2-*:1.0.2
wird veröffentlicht. 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 behoben. (aosp/987003) - Verbesserte Verarbeitung des Falls, in dem ExoPlayer getDuration() aufruft und das Medienelement nicht existiert (aosp/987484)
- Ein Fehler wurde behoben, bei dem ExoPlayer keine
IllegalStateException
auslöste, wenngetDuration()
in einemIDLE
-Zustand aufgerufen wurde (aosp/987246) - Benutzerdefinierte Parcelables für media2 nicht zulassen (aosp/1091056)
- Ein Problem wurde behoben, das zu Verzögerungen in
close()
führte (aosp/1096455) - MediaBrowser: Die Fehlerbehandlung in
subscribe()
wurde mitMediaBrowserService
verbessert (aosp/1158057) - Ein Absturz der MediaController mit der Framework MediaSession wurde behoben(aosp/1177663).
- Sitzungsinformationen nicht über Callbacks senden, wenn die Verbindung hergestellt wird (aosp/1195030, b/142925848)
- Ein Problem wurde behoben, bei dem eine SessionResult-Nachricht von der MediaController unerwartet mehrmals gesendet werden kann (aosp/1198634)
- Ein Problem wurde behoben, bei dem MediaController möglicherweise nicht zulässige Befehle an MediaSession gesendet hat. MediaSession sendet jetzt
RESULT_ERROR_PERMISSION_DENIED
. (aosp/1204183) - Ein sporadisches Problem mit
MediaControllerView#setPlayer
wurde behoben (aosp/987004)
Version 1.0.1
Version 1.0.1
9. Oktober 2019
androidx.media2:media2-*:1.0.1
wird veröffentlicht. 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
- Behebung einer RuntimeException, die auftritt, wenn eine Unterklasse von MediaItem über den Prozess gesendet wird (aosp/1098971)
- Ein Problem wurde behoben, bei dem der MediaPlayer bei der Wiedergabe einer Playlist
onCurrentMediaItemChanged()
nur einmal aufrief. - Es wurde ein Problem behoben, bei dem der MediaPlayer keine Playlists mit mehr als zwei Elementen abspielen konnte (aosp/1108440)
- Ein Problem wurde behoben, durch das der Player auch dann weiter in SurfaceView abgespielt wurde, wenn er unsichtbar war.
- Behoben wurde ein Problem bei der VideoView-Wiedergabe, das auftritt, wenn vor dem
setPlayer
ein Anruf ansetViewType
getätigt wird.
Version 1.0.0
5. September 2019
androidx.media2:media2-*:1.0.0
wird veröffentlicht. Das sind die Commits in media2-{player, session}:1.0.0 und die Commits in media2-widget:1.0.0.
Wichtige Funktionen 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 werden hauptsächlich mit
android.media.MediaPlayer
abgeglichen und die zugrunde liegende Engine ist ExoPlayer. - Integrierte Audiofokus- und Geräuschbehandlung
- Implementiert SessionPlayer
- APIs werden hauptsächlich mit
media2.session.MediaSession
- Bietet eine detaillierte Berechtigungssteuerung
- Unterstützt benutzerdefinierte Layouts
- Einfache Verwendung mit SessionPlayer, z. B.
androidx.media2.player.MediaPlayer
- Interoperabel mit
MediaControllerCompat
media2.session.MediaSessionService
- Eine schlanke Version von
MediaLibraryService
- Bietet eine Lebenszyklusverwaltung für die Hintergrundwiedergabe
- Interoperabel mit
MediaControllerCompat
undMediaBrowserServiceCompat
- Eine schlanke Version von
media2.session.MediaLibraryService
- Bessere Paginierung für die Navigation durch Medienelemente oder Suchergebnisse mit vielen Elementen
- Interoperabel mit
MediaControllerCompat
undMediaBrowserServiceCompat
media2.session.MediaController
- Kann mit
MediaSession
,MediaSessionService
undMediaLibraryService
verbunden werden - Interoperabel mit
MediaSessionCompat
undMediaBrowserServiceCompat
- Kann mit
media2.session.MediaBrowser
- Übernimmt
MediaController
- Kann mit
MediaSession
,MediaSessionService
undMediaLibraryService
verbunden werden - Interoperabel mit
MediaSessionCompat
undMediaBrowserServiceCompat
- Übernimmt
media2.widget.VideoView
- Enthält alle Funktionen von
android.widget.VideoView
- Ermöglicht den Wechsel zwischen
TextureView
undSurfaceView
- Kann mit
MediaSession
verwendet werden
- Enthält alle Funktionen von
media2.widget.MediaControlView
- Besseres Erscheinungsbild
- Enthält alle Funktionen von
android.widget.MediaController
- Ermöglicht die Auswahl von Untertiteln, die Auswahl der Wiedergabegeschwindigkeit und den Vollbildmodus
Version 1.0.0-rc02
22. August 2019
androidx.media2:media2-*:1.0.0-rc02
ist veröffentlicht. Die Änderungen in dieser Version finden Sie hier. Diese Version enthält androidx.media2:media2-widget:1.0.0-rc02
. Eine Liste der Änderungen in dieser Version finden Sie hier.
Neue Funktionen
setPlayer
odersetController
dürfen nicht mehr überMediaControlView
(MCV) aufgerufen werden, wenn dieMediaControlView
zu einerVideoView
gehört.
Fehlerkorrekturen
MediaControlView
: Die Schaltflächen „Nächster“ und „Vorheriger“ sind nur anklickbar, wenn es nächste oder vorherige Medienelemente gibt.MediaControlView
: Fehler beiNullPointerException
behoben, wennonAttachedToWindow()
aufgerufen wird- Das Media2-Widget verarbeitet jetzt die Metadaten des neuen Medienelements richtig, 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 veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Hintergrundwiedergabe: Anstatt einen Player in VideoView zu erstellen, kann VideoView SessionPlayer oder MediaController verwenden, damit die App nahtlos in den Hintergrundwiedergabemodus wechseln kann.
- Abhängigkeit von der media2-player-Bibliothek entfernt
- „
onViewTypeChangedListener
“ wurde hinzugefügt
API-Änderungen
- Sichtbarkeit von „Öffentlich“ zu „Geschützt“ geändert:
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
werden freigegeben. Die in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
Abhängigkeiten von
ListenableFuture
wurden zurück zur eigenständigen Implementierung von Guava 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 Auflösung von Abhängigkeiten auftreten. Wenn Sie einen
Could not resolve all artifacts
-Fehler im Zusammenhang mitListenableFuture
erhalten, können Sie das Problem vorübergehend umgehen, indem Sie der Build-Konfiguration Ihres Projektsandroid.dependency.useConstraints=false
hinzufügen. Wir arbeiten derzeit an einer dauerhaften Lösung im 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
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Fehlerkorrekturen
- Wenn Sie für androidx.media.player.MediaPlayer eine negative Wiedergabegeschwindigkeit festlegen, 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
werden losgelassen. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Bibliotheken sind in drei Teile unterteilt: media2-common, media2-player und media2-session.
IllegalPointerException
inNullPointerException
für Nullargumente geändert, die als @NonNull gekennzeichnet sind
API-Änderungen
- Eingeführt:
MediaController.Builder
- Es wurden Setzermethoden für die optionalen Felder von
FileMediaItem.Builder
hinzugefügt. MediaController
undMediaBrowser
können Verbindungshinweise der Anwendung anMediaSession
,MediaSessionService
oderMediaLibraryService
senden- Einige Methoden wurden umbenannt, um den Media2 APIs von Android 10 zu 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
- Die folgenden Kurse wurden zusammengeführt:
DataSourceDesc2
undMediaItem2
wurden zuMediaItem
zusammengeführtMediaPlaylistAgent
undMediaPlayerConnector
wurden zuSessionPlayer
zusammengeführt
- Die folgenden Unterklassen von
Rating
wurden hinzugefügt:HeartRating
,PercentageRating
,StarRating
undThumbRating
. Media2
verwendet jetztListenableFuture
für asynchrone Methoden