Media2

Medieninhalte und Steuerelemente für andere Apps freigeben
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.

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

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 und MEDIA_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 über MediaSession#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, wenn getCurrentControllerInfo() auf eine freigegebene MediaSessionCompat aufgerufen wurde. (aosp/1423291]
  • Ein Problem wurde behoben, bei dem media2 MediaSession die ID des aktiven Warteschlangenelements nicht auf PlaybackStateCompat 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() nach MediaPlayer.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 in MediaPlayer#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, wenn getDuration() in einem IDLE-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 mit MediaBrowserService 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 an setViewType 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
  • 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 und MediaBrowserServiceCompat
  • media2.session.MediaLibraryService
    • Bessere Paginierung für die Navigation durch Medienelemente oder Suchergebnisse mit vielen Elementen
    • Interoperabel mit MediaControllerCompat und MediaBrowserServiceCompat
  • media2.session.MediaController
    • Kann mit MediaSession, MediaSessionService und MediaLibraryService verbunden werden
    • Interoperabel mit MediaSessionCompat und MediaBrowserServiceCompat
  • media2.session.MediaBrowser
    • Übernimmt MediaController
    • Kann mit MediaSession, MediaSessionService und MediaLibraryService verbunden werden
    • Interoperabel mit MediaSessionCompat und MediaBrowserServiceCompat
  • media2.widget.VideoView
    • Enthält alle Funktionen von android.widget.VideoView
    • Ermöglicht den Wechsel zwischen TextureView und SurfaceView
    • Kann mit MediaSession verwendet werden
  • 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 oder setController dürfen nicht mehr über MediaControlView (MCV) aufgerufen werden, wenn die MediaControlView zu einer VideoView gehört.

Fehlerkorrekturen

  • MediaControlView: Die Schaltflächen „Nächster“ und „Vorheriger“ sind nur anklickbar, wenn es nächste oder vorherige Medienelemente gibt.
  • MediaControlView: Fehler bei NullPointerException behoben, wenn onAttachedToWindow() 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 mit ListenableFuture erhalten, können Sie das Problem vorübergehend umgehen, indem Sie der Build-Konfiguration Ihres Projekts android.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 in NullPointerException 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 und MediaBrowser können Verbindungshinweise der Anwendung an MediaSession, MediaSessionService oder MediaLibraryService 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:
    • MediaPlayer2MediaPlayer
    • MediaSession2MediaSession
    • MediaController2MediaController
    • MediaSessionService2MediaSessionService
    • MediaLibraryService2MediaLibraryService
    • MediaBrowser2MediaBrowser
    • MediaMetadata2MediaMetadata
    • Rating2Rating
    • SessionToken2SessionToken
    • SessionCommand2SessionCommand
    • SessionCommandGroup2SessionCommandGroup
  • Die folgenden Kurse wurden zusammengeführt:
    • DataSourceDesc2 und MediaItem2 wurden zu MediaItem zusammengeführt
    • MediaPlaylistAgent und MediaPlayerConnector wurden zu SessionPlayer zusammengeführt
  • Die folgenden Unterklassen von Rating wurden hinzugefügt: HeartRating, PercentageRating, StarRating und ThumbRating.
  • Media2 verwendet jetzt ListenableFuture für asynchrone Methoden