Elemento multimediale 2
Aggiornamento più recente | Release stabile | Candidato di rilascio | Versione beta | Versione alpha |
---|---|---|---|---|
10 gennaio 2024 | 1.3.0 | - | - | - |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza su 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 artefatti necessari nel file build.gradle
per l'app o il 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, vedi Aggiungere dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Contattaci se scopri nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
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 deprecato. Utilizza invece androidx.media3.
Versione 1.3.0-rc01
13 dicembre 2023
androidx.media2:media2-*:1.3.0-rc01
viene rilasciato senza modifiche da 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 alle API
- L'API
androidx.media2
è ora completamente deprecata. Usa invece il criterioandroidx.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
- È stato risolto il problema relativo alla presenza di parcelle personalizzate 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)
MEDIA_URI_PATH_SET_MEDIA_URI
eMEDIA_URI_QUERY_URI
aggiunti 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
- Corretto l'errore ANR durante la chiusura della notifica dei contenuti multimediali (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 alle API
- Aggiunti
MEDIA_URI_PATH_SET_MEDIA_URI
eMEDIA_URI_QUERY_URI
in MediaCostantis
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 alle API
- Aggiungi il supporto per (prepare|play)From(MediaId|Uri|Search) (I13475, b/176949057)
Correzioni di bug
- Risolvi un problema di deadlock causato da blocchi sincronizzati non necessari.
- Reimposta il player quando non ci sono elementi riproducibili
- Consenti a onCurrentMediaItemChanged di accettare un elemento multimediale nullo
- Aggiorna 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
- Risolvi un problema di deadlock 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
- Correzione del valore NPE della 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
- Consente di aggiornare la notifica dei contenuti multimediali quando viene modificato l'elemento multimediale corrente.
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 importanti dalla versione 1.0.0
- Sono state aggiunte altre API per la gestione delle tracce multimediali
- Migliore supporto dell'interoperabilità con la libreria multimediale AndroidX
MediaSession#setMediaUri
è stato aggiunto- Data esposizione:
MediaSessionCompat.Token
tramiteMediaSession#getSessionCompatToken()
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.
- Risolto un problema per cui MediaController notificava le richiamate tenendo premuto un blocco, causando potenziali deadlock (I76c56
- Risolto un problema per cui
MediaSessionImplBase#isClosed()
poteva arrestarsi in modo anomalo durante la chiamata agetCurrentControllerInfo()
suMediaSessionCompat
rilasciato. (aosp/1423291] - Risolto un problema per cui l'elemento multimediale 2
MediaSession
non impostava l'ID elemento della coda attivo 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. Questa funzionalità è 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
- Reimposta la posizione corrente quando l'elemento multimediale viene modificato
- Invia metadati e stato di buffering quando connesso
- Risolvere i problemi di arresto anomalo durante l'invio di dati di grandi dimensioni tra una sessione e un controller
- Aggiungi
<queries>
al file manifest per i contenuti multimediali e i contenuti multimediali2 per Android 11 - Correggi l'NPE per
MediaController.getPlaylist()
- Disattiva la barra di avanzamento di
MediaControlView
quando non è consentito il comando di ricerca - Invia una notifica a
PlaybackStateCompat
quando l'elemento multimediale corrente di una sessione viene modificato - Correggi la distribuzione 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
- Risolto il problema di tempistica durante l'aggiornamento dei metadati (I45567, b/143999611)
- SessionResult conserverà MediaItem da PlayerResult (I927b0, b/154885520)
- Risolto un bug per cui
MediaController#setVolumeTo()
poteva modificare il volume errato dello stream. (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, mentre la versione 1.0.3 di media2-widget
contiene questi commit
Correzioni di bug
- Risolto il problema di NullPointerException durante la creazione di MediaController con un callback null
- Risolto il problema per cui
onPlaylistChanged()
non veniva chiamato dopo il giornoMediaPlayer.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, mentre la versione 1.0.2 di media2-widget
contiene questi commit
Correzioni di bug
- È stato corretto un
IndexOutOfBoundsException
inMediaPlayer#getSelectedTrack()
. (aosp/987003). - Migliorata la gestione del caso in cui ExoPlayer chiama getDuration() e l'elemento multimediale non esiste (aosp/987484)
- Risolto un bug per cui ExoPlayer non generava
IllegalStateException
quando veniva chiamatogetDuration()
in statoIDLE
(aosp/987246) - Non consentire l'utilizzo di pacchetti personalizzati per media2 (aosp/1091056)
- Risolto un problema che causava blocchi in
close()
(aosp/1096455) - MediaBrowser: gestione degli errori in
subscribe()
migliorata conMediaBrowserService
(aosp/1158057) - Risolto l'arresto anomalo di MediaController con MediaSession Framework(aosp/1177663)
- Non inviare notifiche alle informazioni sulla sessione tramite callback quando viene stabilita la connessione (aosp/1195030, b/142925848).
- Risolto un problema per cui un SessionResult può essere inviato più di una volta in modo imprevisto da MediaController (aosp/1198634)
- Risolto un problema per cui MediaController poteva inviare comandi non consentiti a MediaSession, per cui MediaSession ora invia
RESULT_ERROR_PERMISSION_DENIED
(aosp/1204183) - Risolto un problema irregolare 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, mentre la versione 1.0.1 di androidx.media2:media2-widget:1.0.1
contiene questi commit.
Correzioni di bug
- Correzione di un'eccezione RuntimeException quando una sottoclasse di MediaItem viene inviata attraverso il processo (aosp/1098971)
- Risolto un problema per cui MediaPlayer chiamava
onCurrentMediaItemChanged()
solo una volta durante la riproduzione di una playlist - Risolto il problema per cui MediaPlayer poteva riprodurre una playlist con più di due elementi (aosp/1108440)
- Risolto il problema per cui il player continuava a essere riprodotto su SurfaceView, anche se era invisibile
- 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 media2-{player, session}:1.0.0 e i commit inclusi in media2-widget:1.0.0.
Funzionalità principali di Media2 1.0.0
Media2 è la nuova generazione delle seguenti API multimediali: MediaSession
, MediaController
, MediaBrowser
, MediaBrowserService
, VideoView
e MediaControlView
.
media2.player.MediaPlayer
- Le API corrispondono principalmente a
android.media.MediaPlayer
e il motore sottostante è ExoPlayer - Focus audio e gestione del rumore integrati
- Implementa SessionPlayer
- Le API corrispondono principalmente a
media2.session.MediaSession
- Fornisce controlli delle autorizzazioni granulari
- Supporta layout personalizzati
- Facile da utilizzare con SessionPlayer, come
androidx.media2.player.MediaPlayer
- Interoperabilità con
MediaControllerCompat
media2.session.MediaSessionService
- Una versione leggera di
MediaLibraryService
- Fornisce la gestione del ciclo di vita dei servizi per la riproduzione in background
- Interoperabilità con
MediaControllerCompat
eMediaBrowserServiceCompat
- Una versione leggera di
media2.session.MediaLibraryService
- Supporta una migliore impaginazione per la navigazione di elementi multimediali o risultati di ricerca che contengono molti elementi.
- Interoperabilità con
MediaControllerCompat
eMediaBrowserServiceCompat
media2.session.MediaController
- Può connettersi a
MediaSession
,MediaSessionService
eMediaLibraryService
- Interoperabilità con
MediaSessionCompat
eMediaBrowserServiceCompat
- Può connettersi a
media2.session.MediaBrowser
- Eredita
MediaController
- Può connettersi a
MediaSession
,MediaSessionService
eMediaLibraryService
- Interoperabilità con
MediaSessionCompat
eMediaBrowserServiceCompat
- Eredita
media2.widget.VideoView
- Contiene tutte le funzionalità di
android.widget.VideoView
- Consente di passare da
TextureView
aSurfaceView
- Compatibilità con
MediaSession
- Contiene tutte le funzionalità di
media2.widget.MediaControlView
- Aspetto e design migliori
- Contiene tutte le funzionalità di
android.widget.MediaController
- Consente di selezionare le tracce dei sottotitoli, la selezione della velocità di riproduzione e la modalità a schermo intero
Versione 1.0.0-rc02
22 agosto 2019
androidx.media2:media2-*:1.0.0-rc02
è stato rilasciato 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ù possibile chiamare
setPlayer
osetController
tramiteMediaControlView
(MCV) quandoMediaControlView
appartiene a unVideoView
Correzioni di bug
MediaControlView
: è possibile fare clic sui pulsanti Avanti e Indietro solo se sono presenti elementi multimediali successivi o precedenti.MediaControlView
: è stato risolto un problema diNullPointerException
irregolare quando veniva richiamatoonAttachedToWindow()
- Il widget Media2 ora gestisce correttamente i metadati del nuovo elemento multimediale quando l'elemento multimediale corrente viene 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 senza problemi alla modalità di riproduzione in background.
- È stata rimossa la dipendenza con la libreria Media2-player
onViewTypeChangedListener
è stato aggiunto
Modifiche alle API
- Cambiamento della visibilità da pubblica a protetta:
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- Rimosse:
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- Aggiunta:
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
Vengono rilasciati 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
. I commit inclusi in questa versione sono disponibili qui.
Modifiche alle 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'artefatto Guava completo, potresti riscontrare un conflitto di risoluzione delle dipendenze quando utilizzi determinate versioni del plug-in Android per Gradle. Se riscontri un errore
Could not resolve all artifacts
che interessaListenableFuture
, puoi aggirare temporaneamente il problema aggiungendoandroid.dependency.useConstraints=false
alla configurazione della build del tuo progetto. Al momento stiamo lavorando a una soluzione permanente per il plug-in Android per Gradle che verrà rilasciato 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.
- Sostituisci Guava AscoltaableFuture con implementazione Jetpack (aosp/968828)
Versione 1.0.0-beta01
7 maggio 2019
Vengono rilasciati 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
. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
- Le raccolte sono suddivise in tre parti: media2-common, media2-player, media2-sessione
IllegalPointerException
modificato inNullPointerException
per gli argomenti null contrassegnati come @NonNull.
Modifiche alle API
- Data di presentazione:
MediaController.Builder
- Sono stati aggiunti metodi setter per i campi facoltativi di
FileMediaItem.Builder
MediaController
eMediaBrowser
possono inviare suggerimenti di connessione dell'applicazione aMediaSession
,MediaSessionService
oMediaLibraryService
- Alcuni metodi vengono rinominati in modo da seguire le API di Android 10 Media2
Versione 1.0.0-alpha04
17 dicembre 2018
Modifiche alle 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 stati uniti i seguenti corsi:
DataSourceDesc2
eMediaItem2
sono stati uniti inMediaItem
MediaPlaylistAgent
eMediaPlayerConnector
sono stati uniti inSessionPlayer
- Sono state aggiunte le seguenti sottoclassi di
Rating
:HeartRating
,PercentageRating
,StarRating
eThumbRating
Media2
ora utilizzaListenableFuture
per i metodi asincroni