Media2

Medieninhalte und Steuerelemente mit anderen Apps teilen.
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:

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

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.

Neues Problem erstellen

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 stattdessen androidx.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 und MEDIA_URI_QUERY_URI wurden in MediaConstants 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 und MEDIA_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

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 über MediaSession#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 von getCurrentControllerInfo() auf einem veröffentlichten MediaSessionCompat abstürzen konnte. (aosp/1423291]
  • Media2 MediaSession legte die aktive Warteschlangenelement-ID nicht auf PlaybackStateCompat 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() nach MediaPlayer.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 in MediaPlayer#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, wenn getDuration() im IDLE-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() mit MediaBrowserService (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 vor setPlayer 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
  • 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 und MediaBrowserServiceCompat
  • media2.session.MediaLibraryService
    • Unterstützt eine bessere Paginierung für die Navigation in Medien oder in Suchergebnissen mit vielen Elementen
    • Interoperabilität mit MediaControllerCompat und MediaBrowserServiceCompat
  • media2.session.MediaController
    • Kann eine Verbindung zu MediaSession, MediaSessionService und MediaLibraryService herstellen
    • Interoperabilität mit MediaSessionCompat und MediaBrowserServiceCompat
  • media2.session.MediaBrowser
    • Übernimmt MediaController
    • Kann eine Verbindung zu MediaSession, MediaSessionService und MediaLibraryService herstellen
    • Interoperabilität mit MediaSessionCompat und MediaBrowserServiceCompat
  • media2.widget.VideoView
    • Enthält alle Funktionen von android.widget.VideoView
    • Bietet den Wechsel zwischen TextureView und SurfaceView
    • Kann mit MediaSession zusammenarbeiten
  • 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 oder setController dürfen nicht mehr über MediaControlView (MCV) aufgerufen werden, wenn MediaControlView zu einer VideoView gehört

Fehlerkorrekturen

  • MediaControlView: Die Schaltflächen „Weiter“ und „Zurück“ sind nur anklickbar, wenn Medienelemente vorhanden sind
  • MediaControlView: Ein instabiles NullPointerException-Objekt wurde behoben, wenn onAttachedToWindow() 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 auf ListenableFuture auftritt, können Sie das Problem vorübergehend umgehen, indem Sie android.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, in NullPointerException geändert.

API-Änderungen

  • Einführung von MediaController.Builder
  • Für die optionalen Felder von FileMediaItem.Builder wurden Setter-Methoden hinzugefügt
  • MediaController und MediaBrowser können die Verbindungshinweise der Anwendung an MediaSession, MediaSessionService oder MediaLibraryService 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 und MediaItem2 wurden zu MediaItem zusammengefasst
    • MediaPlaylistAgent und MediaPlayerConnector wurden zu SessionPlayer zusammengefasst
  • Die folgenden abgeleiteten Klassen von Rating wurden hinzugefügt: HeartRating, PercentageRating, StarRating und ThumbRating
  • Media2 verwendet jetzt ListenableFuture für asynchrone Methoden