Media2
androidx.media2.common
androidx.media2.player
androidx.media2.session
androidx.media2.widget
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
10 janvier 2024 | 1.3.0 | - | - | - |
Déclarer des dépendances
Pour ajouter une dépendance sur Media2, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances des artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou module :
Groovy
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") }
Pour en savoir plus sur les dépendances, consultez la page Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez les documents sur l'outil Issue Tracker.
Version 1.3
Version 1.3.0
10 janvier 2024
Publication d'androidx.media2:media2-*:1.3.0
. Liste des commits de la version 1.3.0
Changements importants depuis la version 1.2.0
- androidx.media2 est désormais entièrement obsolète. Utilisez plutôt androidx.media3.
Version 1.3.0-rc01
13 décembre 2023
Publication de androidx.media2:media2-*:1.3.0-rc01
sans aucune modification par rapport à Media2 1.3.0-beta01. Liste des commits de la version 1.3.0-rc01
Version 1.3.0-beta01
29 novembre 2023
androidx.media2:media2-*:1.3.0-beta01
est publié sans aucune modification par rapport à Media2 1.3.0-alpha01
. Liste des commits de la version 1.3.0-beta01
Version 1.3.0-alpha01
15 novembre 2023
Publication d'androidx.media2:media2-*:1.3.0-alpha01
. Liste des commits de la version 1.3.0-alpha01
Modifications apportées à l'API
androidx.media2
est désormais entièrement obsolète. Utilisezandroidx.media3
à la place. (I53164)
Version 1.2.1
Version 1.2.1
9 février 2022
Publication d'androidx.media2:media2-*:1.2.1
. Liste des commits de la version 1.2.1
Corrections de bugs
- Correction de la vérification des éléments Parcelable personnalisés lors du ciblage de l'API 33.
Version 1.2.0
Version 1.2.0
15 septembre 2021
Publication d'androidx.media2:media2-*:1.2.0
. Liste des commits de la version 1.2.0
Changements importants depuis la version 1.1.0
- Prise en charge de l'interopérabilité avec les contenus multimédias AndroidX de (prepare|play)From(MediaId|Uri|Search).
- Ajout de
MEDIA_URI_PATH_SET_MEDIA_URI
etMEDIA_URI_QUERY_URI
dansMediaConstants
.
Version 1.2.0-rc01
1er septembre 2021
Publication d'androidx.media2:media2-*:1.2.0-rc01
. Liste des commits de la version 1.2.0-rc01
Corrections de bugs
- Correction de l'erreur ANR lors de la fermeture de la notification multimédia. (Ifdcc2, b/148011394)
Version 1.2.0-beta01
30 juin 2021
Publication de androidx.media2:media2-*:1.2.0-beta01
. Liste des commits de la version 1.2.0-beta01
Nouvelles fonctionnalités
- Prise en charge de l'interopérabilité avec les contenus multimédias AndroidX de (prepare|play)From(MediaId|Uri|Search).
Modifications apportées à l'API
- Ajout de
MEDIA_URI_PATH_SET_MEDIA_URI
etMEDIA_URI_QUERY_URI
dans MediaConstants.
Version 1.2.0-alpha01
21 avril 2021
Publication d'androidx.media2:media2-*:1.2.0-alpha01
. Liste des commits de la version 1.2.0-alpha01
Modifications apportées à l'API
- Prise en charge de (prepare|play)From(MediaId|Uri|Search). (I13475, b/176949057)
Corrections de bugs
- Résolution d'un problème d'interblocage causé par des blocages synchronisés inutiles.
- Réinitialisation du lecteur lorsqu'il n'existe aucun élément à lire.
- Mise à jour d'onCurrentMediaItemChanged pour qu'il puisse utiliser l'élément multimédia "null".
- Mise à jour de la notification lorsque l'élément multimédia actuel est modifié.
- Résolution du problème d'interopérabilité avec la manette juste après la création de la session.
Version 1.1.3
Version 1.1.3
21 avril 2021
Publication d'androidx.media2:media2-*:1.1.3
. Liste des commits de la version 1.1.3
Corrections de bugs
- Résolution d'un problème d'interblocage causé par des blocages synchronisés inutiles.
Version 1.1.2
Version 1.1.2
27 janvier 2021
Publication d'androidx.media2:media2-*:1.1.2
. Liste des commits de la version 1.1.2
Corrections de bugs
- Résolution de l'exception NPE dans VersionedParcelable. (I1ec28, b/177060207)
Version 1.1.1
Version 1.1.1
16 décembre 2020
Publication d'androidx.media2:media2-*:1.1.1
. Liste des commits de la version 1.1.1
Corrections de bugs
- Mise à jour de la notification multimédia lorsque l'élément multimédia actuel est modifié.
Version 1.1.0
Version 1.1.0
2 décembre 2020
Publication d'androidx.media2:media2-*:1.1.0
. Liste des commits de la version 1.1.0
Principales modifications depuis la version 1.0.0
- Ajout d'API pour la gestion des pistes multimédias.
- Meilleure prise en charge de l'interopérabilité avec la bibliothèque multimédia AndroidX.
- Ajout de
MediaSession#setMediaUri
. MediaSessionCompat.Token
exposé viaMediaSession#getSessionCompatToken()
.
- Ajout de
Version 1.1.0-rc01
28 octobre 2020
Publication d'androidx.media2:media2-*:1.1.0-rc01
. Liste des commits de la version 1.1.0-rc01
- Résolution d'un problème qui provoquait un éventuel interblocage des rappels de MediaController lors du maintien d'un verrouillage. (I76c56)
- Résolution d'un problème de plantage potentiel de
MediaSessionImplBase#isClosed()
lors de l'appel degetCurrentControllerInfo()
sur unMediaSessionCompat
publié. (aosp/1423291] - Résolution d'un problème qui empêchait l'élément media2
MediaSession
de définir l'ID d'élément de la file d'attente active surPlaybackStateCompat
. (aosp/1421652) - Ajout de l'indicateur
BIND_INCLUDE_CAPABILITIES
lors de la liaison au service, qui permet aux applications multimédias sans interface graphique d'accéder à la position si elles disposent de l'autorisation. Cette fonctionnalité est particulièrement utile pour les applications Android Auto. (aosp/1440731)
Version 1.1.0-beta01
16 septembre 2020
Publication d'androidx.media2:media2-*:1.1.0-beta01
. Liste des commits de la version 1.1.0-beta01
Corrections de bugs
- Réinitialisation de la position actuelle lorsque l'élément multimédia change.
- Envoi des métadonnées et de l'état de mise en mémoire tampon lorsque l'appareil est connecté.
- Résolution du problème de plantage lors de l'envoi de données volumineuses entre une session et un contrôleur.
- Ajout de
<queries>
au fichier manifeste pour media et media2 pour Android 11. - Correction de l'exception NPE pour
MediaController.getPlaylist()
. - Désactivation de la barre de progression de
MediaControlView
lorsque la commande de recherche n'est pas autorisée. - Notification de
PlaybackStateCompat
lorsque l'élément multimédia actuel d'une session a été modifié. - Correction des parcelles de
SessionPlayer.TrackInfo
.
Version 1.1.0-alpha01
24 juin 2020
Publication d'androidx.media2:media2-*:1.1.0-alpha01
. Liste des commits de la version 1.1.0-alpha01
Corrections de bugs
- Résolution du problème de mise à jour des métadonnées. (I45567, b/143999611)
- SessionResult conserve l'élément MediaItem de PlayerResult. (I927b0, b/154885520)
- Correction d'un bug où
MediaController#setVolumeTo()
pouvait changer le volume de flux incorrect. (I76870, b/151204736)
Version 1.0.3
Version 1.0.3
19 février 2020
Publication d'androidx.media2:media2-*:1.0.3
. Liste des commits de la version 1.0.3 de media2-{common,player,session}
et Liste des commits de la version 1.0.3 de media2-widget
Corrections de bugs
- Correction d'une exception NullPointerException lors de la création de MediaController avec un rappel "null".
- Résolution du problème où
onPlaylistChanged()
n'était pas appelé aprèsMediaPlayer.setMediaItem
.
Version 1.0.2
Version 1.0.2
5 février 2020
Publication d'androidx.media2:media2-*:1.0.2
. Liste des commits de la version 1.0.2 de media2-{common,player,session}
et Liste des commits de la version 1.0.2 de media2-widget
Corrections de bugs
- Correction d'une exception
IndexOutOfBoundsException
dansMediaPlayer#getSelectedTrack()
. (aosp/987003) - Amélioration de la gestion du cas où ExoPlayer appelle getDuration() et que l'élément multimédia n'existe pas. (aosp/987484)
- Correction d'un bug qui empêchait ExoPlayer de générer une exception
IllegalStateException
lorsquegetDuration()
était appelé à l'étatIDLE
. (aosp/987246) - Éléments Parcelable personnalisés non autorisés pour media2. (aosp/1091056)
- Résolution d'un problème qui entraînait le blocage dans
close()
. (aosp/1096455) - MediaBrowser : amélioration du traitement des erreurs dans
subscribe()
avecMediaBrowserService
. (aosp/1158057) - Résolution du problème de plantage de MediaController avec le framework MediaSession. (aosp/1177663)
- Pas d'envoi d'informations sur la session via des rappels lorsque la connexion est établie. (aosp/1195030, b/142925848)
- Correction d'un problème qui pouvait entraîner l'envoi répété d'un résultat de session à partir de MediaController de manière inattendue. (aosp/1198634)
- Résolution d'un problème où MediaController envoyait des commandes non autorisées à MediaSession. MediaSession envoie désormais
RESULT_ERROR_PERMISSION_DENIED
. (aosp/1204183) - Résolution d'un problème d'instabilité avec
MediaControllerView#setPlayer
. (aosp/987004)
Version 1.0.1
Version 1.0.1
9 octobre 2019
Publication d'androidx.media2:media2-*:1.0.1
. Liste des commits de la version 1.0.1 de androidx.media2:media2-{player, session}:1.0.1
et Liste des commits de la version 1.0.1 de androidx.media2:media2-widget:1.0.1
Corrections de bugs
- Correction d'une exception RuntimeException lorsqu'une sous-classe de MediaItem est envoyée tout au long du processus. (aosp/1098971)
- Résolution d'un problème où MediaPlayer n'appelait
onCurrentMediaItemChanged()
qu'une seule fois lors de la lecture d'une playlist. - Résolution d'un problème où MediaPlayer lisait une playlist contenant plus de deux éléments. (aosp/1108440)
- Résolution d'un problème où le lecteur continuait la lecture sur SurfaceView, même s'il était invisible.
- Résolution d'un problème de lecture VideoView qui survenait lorsqu'un appel était passé à
setViewType
avantsetPlayer
.
Version 1.0.0
5 septembre 2019
Publication d'androidx.media2:media2-*:1.0.0
. Liste des commits inclus dans media2-{player, session}:1.0.0 et Liste des commits inclus dans media2-widget:1.0.0
Fonctionnalités principales de Media2 1.0.0
Media2 est la nouvelle génération d'API Media suivantes : MediaSession
, MediaController
, MediaBrowser
, MediaBrowserService
, VideoView
et MediaControlView
.
media2.player.MediaPlayer
- Les API sont pour la plupart mises en correspondance avec
android.media.MediaPlayer
, et le moteur sous-jacent est ExoPlayer. - Intégration de la priorité audio intégrée et de la gestion du bruit.
- Implémentation de SessionPlayer.
- Les API sont pour la plupart mises en correspondance avec
media2.session.MediaSession
- Contrôles d'autorisation précis.
- Prise en charge des mises en page personnalisées.
- Simplicité d'utilisation avec SessionPlayer, comme
androidx.media2.player.MediaPlayer
. - Interopérabilité avec
MediaControllerCompat
.
media2.session.MediaSessionService
- Version allégée de
MediaLibraryService
. - Fournit une gestion du cycle de vie des services pour la lecture en arrière-plan.
- Interopérabilité avec
MediaControllerCompat
etMediaBrowserServiceCompat
.
- Version allégée de
media2.session.MediaLibraryService
- Amélioration de la pagination pour la navigation dans les éléments multimédias ou les résultats de recherche contenant de nombreux éléments.
- Interopérabilité avec
MediaControllerCompat
etMediaBrowserServiceCompat
.
media2.session.MediaController
- Possibilité de se connecter à
MediaSession
,MediaSessionService
etMediaLibraryService
. - Interopérabilité avec
MediaSessionCompat
etMediaBrowserServiceCompat
.
- Possibilité de se connecter à
media2.session.MediaBrowser
- Hérite de
MediaController
. - Possibilité de se connecter à
MediaSession
,MediaSessionService
etMediaLibraryService
. - Interopérabilité avec
MediaSessionCompat
etMediaBrowserServiceCompat
.
- Hérite de
media2.widget.VideoView
- Contient toutes les fonctionnalités de
android.widget.VideoView
. - Permet de basculer entre
TextureView
etSurfaceView
. - Fonctionne avec
MediaSession
.
- Contient toutes les fonctionnalités de
media2.widget.MediaControlView
- Apparence améliorée.
- Contient toutes les fonctionnalités de
android.widget.MediaController
. - Permet de sélectionner la piste de sous-titres, la vitesse de lecture et le mode plein écran.
Version 1.0.0-rc02
22 août 2019
Publication d'androidx.media2:media2-*:1.0.0-rc02
. Les modifications incluses dans cette version sont disponibles ici. Cette version comprend androidx.media2:media2-widget:1.0.0-rc02
, et les modifications qui y sont incluses sont disponibles ici.
Nouvelles fonctionnalités
setPlayer
ousetController
ne peuvent plus être appelés viaMediaControlView
(MCV) lorsqueMediaControlView
appartient à un élémentVideoView
.
Corrections de bugs
MediaControlView
: les boutons "Suivant" et "Précédent" ne sont cliquables que s'il existe des éléments multimédias suivants ou précédents.MediaControlView
: correction d'une exceptionNullPointerException
instable lors de l'appel d'onAttachedToWindow()
.- Le widget Media2 gère désormais correctement les métadonnées du nouvel élément multimédia lorsque celui-ci a été modifié.
Media2-Widget version 1.0.0-beta01
2 juillet 2019
Publication d'androidx.media2:media2-widget:1.0.0-beta01
. Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- Lecture en arrière-plan : au lieu de créer un lecteur dans VideoView, VideoView peut utiliser SessionPlayer ou MediaController pour que l'application passe facilement en mode lecture en arrière-plan.
- Suppression de la dépendance avec la bibliothèque media2-player.
onViewTypeChangedListener
ajouté.
Modifications apportées à l'API
- La visibilité passe de publique à protégée :
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- Suppression :
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- Ajout :
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 juin 2019
Publication d'androidx.media2:media2-common:1.0.0-rc01
, androidx.media2:media2-player:1.0.0-rc01
et androidx.media2:media2-session:1.0.0-rc01
. Les commits inclus dans cette version sont disponibles sur cette page.
Modifications apportées à l'API
Les dépendances de
ListenableFuture
ont été migrées vers l'implémentation autonome de Guava.Notez que si vous avez des cibles de test qui dépendent de l'artefact Guava complet, vous pouvez rencontrer un conflit de résolution des dépendances lors de l'utilisation de certaines versions du plug-in Android Gradle. Si vous rencontrez une erreur
Could not resolve all artifacts
impliquantListenableFuture
, vous pouvez temporairement contourner le problème en ajoutantandroid.dependency.useConstraints=false
à la configuration de compilation de votre projet. Nous travaillons actuellement sur un correctif permanent pour le plug-in Android Gradle, qui sera publié à une date ultérieure.
Version 1.0.0-beta02
5 juin 2019
Publication d'androidx.media2:media2-common:1.0.0-beta02
, androidx.media2:media2-player:1.0.0-beta02
et androidx.media2:media2-session:1.0.0-beta02
. Les commits inclus dans cette version sont disponibles sur cette page.
Corrections de bugs
- La définition d'une vitesse de lecture négative sur androidx.media.player.MediaPlayer renvoie RESULT_ERROR_BAD_VALUE.
- Remplacement de l'élément ListenableFuture de Guava par l'implémentation de Jetpack. (aosp/968828)
Version 1.0.0-beta01
7 mai 2019
Publication d'androidx.media2:media2-common:1.0.0-beta01
, androidx.media2:media2-player:1.0.0-beta01
et androidx.media2:media2-session:1.0.0-beta01
. Les commits inclus dans cette version sont disponibles sur cette page.
Nouvelles fonctionnalités
- Les bibliothèques sont divisées en trois parties : media2-common, media2-player, media2-session.
IllegalPointerException
remplacé parNullPointerException
pour les arguments de valeur "null" marqués comme @NonNull.
Modifications apportées à l'API
- Introduction de
MediaController.Builder
. - Ajout de méthodes "setter" pour les champs facultatifs de
FileMediaItem.Builder
. MediaController
etMediaBrowser
peuvent envoyer des indications de connexion de l'application àMediaSession
,MediaSessionService
ouMediaLibraryService
.- Certaines méthodes ont été renommées pour suivre les API Android 10 Media2.
Version 1.0.0-alpha04
17 décembre 2018
Modifications apportées à l'API
- Changement de nom des classes suivantes :
MediaPlayer2
→MediaPlayer
MediaSession2
→MediaSession
MediaController2
→MediaController
MediaSessionService2
→MediaSessionService
MediaLibraryService2
→MediaLibraryService
MediaBrowser2
→MediaBrowser
MediaMetadata2
→MediaMetadata
Rating2
→Rating
SessionToken2
→SessionToken
SessionCommand2
→SessionCommand
SessionCommandGroup2
→SessionCommandGroup
- Fusion des classes suivantes :
DataSourceDesc2
etMediaItem2
ont été combinés dansMediaItem
.MediaPlaylistAgent
etMediaPlayerConnector
ont été combinés dansSessionPlayer
.
- Ajout des sous-classes suivantes de
Rating
:HeartRating
,PercentageRating
,StarRating
etThumbRating
. Media2
utilise désormaisListenableFuture
pour les méthodes asynchrones.