Media2
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
10 gennaio 2024 | 1.3.0 | - | - | - |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza da Media2, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
Alla moda
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") }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 1.3
Versione 1.3.0
10 gennaio 2024
androidx.media2:media2-*:1.3.0
viene rilasciato. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- androidx.media2 è ora completamente ritirato. Utilizza androidx.media3.
Versione 1.3.0-rc01
13 dicembre 2023
androidx.media2:media2-*:1.3.0-rc01
viene rilasciato senza modifiche rispetto a Media2 1.3.0-beta01. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta01
29 novembre 2023
androidx.media2:media2-*:1.3.0-beta01
viene rilasciato senza modifiche rispetto a Media2 1.3.0-alpha01
. La versione 1.3.0-beta01 contiene questi commit.
Versione 1.3.0-alpha01
15 novembre 2023
androidx.media2:media2-*:1.3.0-alpha01
viene rilasciato. La versione 1.3.0-alpha01 contiene questi commit.
Modifiche all'API
androidx.media2
è stato completamente ritirato. Utilizza inveceandroidx.media3
. (I53164)
Versione 1.2.1
Versione 1.2.1
9 febbraio 2022
androidx.media2:media2-*:1.2.1
viene rilasciato. La versione 1.2.1 contiene questi commit.
Correzioni di bug
- Correzione del controllo dei Parcelable personalizzati quando si sceglie come target l'API 33.
Versione 1.2.0
Versione 1.2.0
15 settembre 2021
androidx.media2:media2-*:1.2.0
viene rilasciato. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- Supporta l'interoperabilità con i contenuti multimediali AndroidX di (prepare|play)From(MediaId|Uri|Search)
- Aggiunti
MEDIA_URI_PATH_SET_MEDIA_URI
eMEDIA_URI_QUERY_URI
inMediaConstants
Versione 1.2.0-rc01
1° settembre 2021
androidx.media2:media2-*:1.2.0-rc01
viene rilasciato. La versione 1.2.0-rc01 contiene questi commit.
Correzioni di bug
- ANR corretto quando si ignora la notifica multimediale (Ifdcc2, b/148011394)
Versione 1.2.0-beta01
30 giugno 2021
androidx.media2:media2-*:1.2.0-beta01
viene rilasciato. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Supporta l'interoperabilità con i contenuti multimediali AndroidX di (prepare|play)From(MediaId|Uri|Search)
Modifiche all'API
- Sono stati aggiunti
MEDIA_URI_PATH_SET_MEDIA_URI
eMEDIA_URI_QUERY_URI
in MediaConstants
Versione 1.2.0-alpha01
21 aprile 2021
androidx.media2:media2-*:1.2.0-alpha01
viene rilasciato. La versione 1.2.0-alpha01 contiene questi commit.
Modifiche all'API
- Aggiunta del supporto per (prepare|play)From(MediaId|Uri|Search) (I13475, b/176949057)
Correzioni di bug
- Risolto un problema di deadlock causato da blocchi sincronizzati non necessari.
- Reimpostare il player quando non sono presenti elementi riproducibili
- Consenti a onCurrentMediaItemChanged di accettare un elemento multimediale null
- Aggiornare la notifica quando l'elemento multimediale corrente viene modificato
- Correggi l'interoperabilità con la compatibilità del controller subito dopo la creazione della sessione
Versione 1.1.3
Versione 1.1.3
21 aprile 2021
androidx.media2:media2-*:1.1.3
viene rilasciato. La versione 1.1.3 contiene questi commit.
Correzioni di bug
- Risolto un problema di blocco delle risorse causato da blocchi sincronizzati non necessari.
Versione 1.1.2
Versione 1.1.2
27 gennaio 2021
androidx.media2:media2-*:1.1.2
viene rilasciato. La versione 1.1.2 contiene questi commit.
Correzioni di bug
- È stato corretto un errore NPE da VersionedParcelable (I1ec28, b/177060207)
Versione 1.1.1
Versione 1.1.1
16 dicembre 2020
androidx.media2:media2-*:1.1.1
viene rilasciato. La versione 1.1.1 contiene questi commit.
Correzioni di bug
- Aggiorna la notifica multimediale quando l'elemento multimediale corrente viene modificato.
Versione 1.1.0
Versione 1.1.0
2 dicembre 2020
androidx.media2:media2-*:1.1.0
viene rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche principali dalla versione 1.0.0
- Sono state aggiunte altre API per la gestione delle tracce multimediali
- Miglior supporto dell'interoperabilità con la raccolta multimediale AndroidX
- Opzione
MediaSession#setMediaUri
aggiunta MediaSessionCompat.Token
esposto tramiteMediaSession#getSessionCompatToken()
- Opzione
Versione 1.1.0-rc01
28 ottobre 2020
androidx.media2:media2-*:1.1.0-rc01
viene rilasciato. La versione 1.1.0-rc01 contiene questi commit.
- È stato risolto un problema per cui MediaController inviava notifiche di callback mentre deteneva una serratura, causando potenziali deadlock (I76c56
- È stato risolto un problema per cui
MediaSessionImplBase#isClosed()
poteva arrestarsi in modo anomalo durante la chiamata agetCurrentControllerInfo()
su unMediaSessionCompat
rilasciato. (aosp/1423291] - È stato risolto un problema per cui media2
MediaSession
non impostava l'ID elemento della coda attiva suPlaybackStateCompat
(aosp/1421652) - È stato aggiunto il flag
BIND_INCLUDE_CAPABILITIES
durante l'associazione al servizio, che consente alle applicazioni multimediali headless di accedere alla posizione se dispongono dell'autorizzazione. Questo è utile in particolare per le app Android Auto. (aosp/1440731)
Versione 1.1.0-beta01
16 settembre 2020
androidx.media2:media2-*:1.1.0-beta01
viene rilasciato. La versione 1.1.0-beta01 contiene questi commit.
Correzioni di bug
- Reimpostare la posizione corrente quando l'elemento multimediale cambia
- Invia metadati e stato del buffering quando è connesso
- Correzione dell'arresto anomalo durante l'invio di dati di grandi dimensioni tra una sessione e un controller
- Aggiungi
<queries>
al manifest per media e media2 per Android 11 - Correggi l'errore NPE per
MediaController.getPlaylist()
- Disattivare la barra di avanzamento di
MediaControlView
quando il comando di ricerca non è consentito - Invia una notifica a
PlaybackStateCompat
quando l'elemento multimediale corrente di una sessione è stato modificato - Correggi il frazionamento di
SessionPlayer.TrackInfo
Versione 1.1.0-alpha01
24 giugno 2020
androidx.media2:media2-*:1.1.0-alpha01
viene rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Correzioni di bug
- È stato corretto un problema di temporizzazione durante l'aggiornamento dei metadati (I45567, b/143999611)
- SessionResult manterrà il MediaItem da PlayerResult (I927b0, b/154885520)
- È stato corretto un bug per cui
MediaController#setVolumeTo()
poteva cambiare il volume dello stream errato. (I76870, b/151204736)
Versione 1.0.3
Versione 1.0.3
19 febbraio 2020
androidx.media2:media2-*:1.0.3
viene rilasciato. La versione 1.0.3 di media2-{common,player,session}
contiene questi commit e la versione 1.0.3 di media2-widget
contiene questi commit
Correzioni di bug
- È stato corretto un NullPointerException durante la creazione di MediaController con un callback null
- È stato risolto il problema per cui
onPlaylistChanged()
non veniva chiamato dopoMediaPlayer.setMediaItem
Versione 1.0.2
Versione 1.0.2
5 febbraio 2020
androidx.media2:media2-*:1.0.2
viene rilasciato. La versione 1.0.2 di media2-{common,player,session}
contiene questi commit e la versione 1.0.2 di media2-widget
contiene questi commit
Correzioni di bug
- È stato corretto un problema relativo a
IndexOutOfBoundsException
inMediaPlayer#getSelectedTrack()
. (aosp/987003) - È stata migliorata la gestione del caso in cui ExoPlayer chiama getDuration() e l'elemento multimediale non esiste (aosp/987484)
- È stato corretto un bug per cui ExoPlayer non generava un
IllegalStateException
quandogetDuration()
viene chiamato in uno statoIDLE
(aosp/987246) - Non consentire Parcelable personalizzati per media2 (aosp/1091056)
- È stato risolto un problema che causava l'arresto anomalo in
close()
(aosp/1096455) - MediaBrowser: è stata migliorata la gestione degli errori in
subscribe()
conMediaBrowserService
(aosp/1158057) - È stato corretto un arresto anomalo di MediaController con MediaSession del framework(aosp/1177663)
- Non inviare una notifica delle informazioni sulla sessione tramite i callback quando viene stabilita la connessione (aosp/1195030, b/142925848)
- Risolto un problema per cui un SessionResult può essere inviato più volte in modo imprevisto da MediaController (aosp/1198634)
- È stato risolto un problema per cui MediaController potrebbe inviare comandi non consentiti a MediaSession, quindi ora MediaSession invia
RESULT_ERROR_PERMISSION_DENIED
(aosp/1204183) - È stato risolto un problema intermittente con
MediaControllerView#setPlayer
(aosp/987004)
Versione 1.0.1
Versione 1.0.1
9 ottobre 2019
androidx.media2:media2-*:1.0.1
viene rilasciato. La versione 1.0.1 di androidx.media2:media2-{player, session}:1.0.1
contiene questi commit e la versione 1.0.1 di androidx.media2:media2-widget:1.0.1
contiene questi commit.
Correzioni di bug
- È stato corretto un errore RuntimeException quando una sottoclasse di MediaItem viene inviata durante il processo (aosp/1098971)
- Risolto un problema per cui MediaPlayer chiama
onCurrentMediaItemChanged()
una sola volta durante la riproduzione di una playlist - È stato risolto un problema per cui MediaPlayer non riusciva a riprodurre una playlist con più di 2 elementi (aosp/1108440)
- È stato risolto un problema per cui il player continuava a riprodurre su SurfaceView, anche se era invisibile
- È stato risolto un problema di riproduzione di VideoView che si verifica quando viene effettuata una chiamata a
setViewType
prima del giornosetPlayer
Versione 1.0.0
5 settembre 2019
androidx.media2:media2-*:1.0.0
viene rilasciato. Questi sono i commit inclusi in media2-{player, session}:1.0.0 e questi sono i commit inclusi in media2-widget:1.0.0.
Funzionalità principali di Media2 1.0.0
Media2 è la prossima generazione delle seguenti API Media: MediaSession
, MediaController
, MediaBrowser
, MediaBrowserService
, VideoView
e MediaControlView
.
media2.player.MediaPlayer
- Le API sono associate principalmente a
android.media.MediaPlayer
e il motore sottostante è ExoPlayer - Gestione del rumore e del focus audio integrati
- Implementa SessionPlayer
- Le API sono associate principalmente a
media2.session.MediaSession
- Fornisce controlli granulari delle autorizzazioni
- Supporta layout personalizzati
- Facile da usare con SessionPlayer, ad esempio
androidx.media2.player.MediaPlayer
- Interoperabile con
MediaControllerCompat
media2.session.MediaSessionService
- Una versione leggera di
MediaLibraryService
- Fornisce la gestione del ciclo di vita del servizio per la riproduzione in background
- Interoperabile con
MediaControllerCompat
eMediaBrowserServiceCompat
- Una versione leggera di
media2.session.MediaLibraryService
- Supporta una paginazione migliore per la navigazione tra elementi multimediali o risultati di ricerca contenenti molti elementi
- Interoperabile con
MediaControllerCompat
eMediaBrowserServiceCompat
media2.session.MediaController
- Può connettersi a
MediaSession
,MediaSessionService
eMediaLibraryService
- Interoperabile con
MediaSessionCompat
eMediaBrowserServiceCompat
- Può connettersi a
media2.session.MediaBrowser
- Eredita
MediaController
- Può connettersi a
MediaSession
,MediaSessionService
eMediaLibraryService
- Interoperabile con
MediaSessionCompat
eMediaBrowserServiceCompat
- Eredita
media2.widget.VideoView
- Contiene tutte le funzionalità di
android.widget.VideoView
- Consente il passaggio da
TextureView
aSurfaceView
- Può essere utilizzato insieme a
MediaSession
- Contiene tutte le funzionalità di
media2.widget.MediaControlView
- Aspetto e design migliorati
- Contiene tutte le funzionalità di
android.widget.MediaController
- Consente di selezionare la traccia dei sottotitoli, la velocità di riproduzione e la modalità a schermo intero
Versione 1.0.0-rc02
22 agosto 2019
androidx.media2:media2-*:1.0.0-rc02
è stata rilasciata e le modifiche incluse in questa versione sono disponibili qui. Questa release include androidx.media2:media2-widget:1.0.0-rc02
e le modifiche incluse in questa versione sono disponibili qui.
Nuove funzionalità
- Non è più consentito chiamare
setPlayer
osetController
tramiteMediaControlView
(MCV) quandoMediaControlView
appartiene a unVideoView
Correzioni di bug
MediaControlView
: i pulsanti Avanti e Indietro sono cliccabili solo se sono presenti elementi multimediali precedenti o successiviMediaControlView
: è stato corretto un problema di instabilità diNullPointerException
quando viene chiamatoonAttachedToWindow()
- Il widget Media2 ora gestisce correttamente i metadati del nuovo elemento multimediale quando quello corrente è stato modificato
Media2-Widget versione 1.0.0-beta01
2 luglio 2019
androidx.media2:media2-widget:1.0.0-beta01
viene rilasciato. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
- Riproduzione in background: anziché creare un player all'interno di VideoView, VideoView può utilizzare SessionPlayer o MediaController in modo che l'app possa passare alla modalità di riproduzione in background senza problemi.
- È stata rimossa la dipendenza dalla libreria media2-player
- Opzione
onViewTypeChangedListener
aggiunta
Modifiche all'API
- Modifica della visibilità da pubblica a protetta:
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- Rimosso:
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- Aggiunto:
VideoView.setMediaController(MediaController)
VideoView.getMediaControlView()
VideoView.setMediaController(MediaController)
VideoView.setPlayer(SessionPlayer)
VideoView.setOnViewTypeChangedListener()
MediaControlView.setPlayer(SessionPlayer)
MediaControlView.setMediaController(MediaContoller)
Versione 1.0.0-rc01
18 giugno 2019
androidx.media2:media2-common:1.0.0-rc01
, androidx.media2:media2-player:1.0.0-rc01
e androidx.media2:media2-session:1.0.0-rc01
sono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Modifiche all'API
Le dipendenze da
ListenableFuture
sono state migrate nuovamente all'implementazione autonoma di Guava.Tieni presente che se hai target di test che dipendono dall'elemento Guava completo, potresti riscontrare un conflitto di risoluzione delle dipendenze quando utilizzi determinate versioni del plug-in Gradle per Android. Se riscontri un errore
Could not resolve all artifacts
relativo aListenableFuture
, puoi aggirare temporaneamente il problema aggiungendoandroid.dependency.useConstraints=false
alla configurazione di compilazione del progetto. Stiamo lavorando a una correzione permanente all'interno del plug-in Android Gradle da rilasciare in un secondo momento.
Versione 1.0.0-beta02
5 giugno 2019
androidx.media2:media2-common:1.0.0-beta02
, androidx.media2:media2-player:1.0.0-beta02
e androidx.media2:media2-session:1.0.0-beta02
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Correzioni di bug
- L'impostazione di una velocità di riproduzione negativa su androidx.media.player.MediaPlayer restituirà RESULT_ERROR_BAD_VALUE.
- Sostituire Guava ListenableFuture con l'implementazione di Jetpack (aosp/968828)
Versione 1.0.0-beta01
7 maggio 2019
androidx.media2:media2-common:1.0.0-beta01
, androidx.media2:media2-player:1.0.0-beta01
e androidx.media2:media2-session:1.0.0-beta01
vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
- Le librerie sono suddivise in tre parti: media2-common, media2-player e media2-session
- Modifica di
IllegalPointerException
inNullPointerException
per gli argomenti null contrassegnati come @NonNull.
Modifiche all'API
- Introdotta
MediaController.Builder
- Sono stati aggiunti metodi di impostazione per i campi facoltativi di
FileMediaItem.Builder
MediaController
eMediaBrowser
possono inviare i suggerimenti di connessione dell'applicazione aMediaSession
,MediaSessionService
oMediaLibraryService
- Alcuni metodi sono stati rinominati per rispettare le API Media2 di Android 10
Versione 1.0.0-alpha04
17 dicembre 2018
Modifiche all'API
- Sono stati rinominati i seguenti corsi:
MediaPlayer2
→MediaPlayer
MediaSession2
→MediaSession
MediaController2
→MediaController
MediaSessionService2
→MediaSessionService
MediaLibraryService2
→MediaLibraryService
MediaBrowser2
→MediaBrowser
MediaMetadata2
→MediaMetadata
Rating2
→Rating
SessionToken2
→SessionToken
SessionCommand2
→SessionCommand
SessionCommandGroup2
→SessionCommandGroup
- Sono state unite le seguenti classi:
DataSourceDesc2
eMediaItem2
sono stati combinati inMediaItem
MediaPlaylistAgent
eMediaPlayerConnector
sono stati combinati inSessionPlayer
- Sono state aggiunte le seguenti sottoclassi di
Rating
:HeartRating
,PercentageRating
,StarRating
eThumbRating
Media2
ora utilizzaListenableFuture
per i metodi asincroni