Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Media2

Comparte contenido y controles multimedia con otras apps.
Actualización más reciente Versión estable actual Próxima versión potencial Versión Beta Versión Alfa
24 de junio de 2020 1.0.3 - - 1.1.0-alpha01

Cómo declarar dependencias

Para agregar una dependencia en Media2, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

    dependencies {
        def media2_version = "1.0.3"

        // 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"
    }
    

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.1.0-alpha01

Versión 1.1.0-alpha01

24 de junio de 2020

Lanzamiento de androidx.media2:media2-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió el problema de sincronización al actualizar los metadatos (I45567, b/143999611).
  • SessionResult conservará el MediaItem de PlayerResult (I927b0, b/154885520).
  • Se corrigió un error por el que MediaController#setVolumeTo() podía cambiar el volumen de transmisión incorrecto. (I76870, b/151204736)

Versión 1.0.3

Versión 1.0.3

19 de febrero de 2020

Lanzamiento de androidx.media2:media2-*:1.0.3. La versión 1.0.3 de media2-{common,player,session} contiene estas confirmaciones, y la versión 1.0.3 de media2-widget contiene estas otras

Correcciones de errores

  • Se corrigió una NullPointerException que se generaba al crear un MediaController con una devolución de llamada nula.
  • Se corrigió un problema por el que no se llamaba a onPlaylistChanged() después de MediaPlayer.setMediaItem.

Versión 1.0.2

Versión 1.0.2

5 de febrero de 2020

Lanzamiento de androidx.media2:media2-*:1.0.2. La versión 1.0.2 de media2-{common,player,session} contiene estas confirmaciones, y la versión 1.0.2 de media2-widget contiene estas otras

Correcciones de errores

  • Se corrigió un IndexOutOfBoundsException en MediaPlayer#getSelectedTrack(). (aosp/987003)
  • Se mejoró el procesamiento del caso en el que ExoPlayer llama a getDuration() y el elemento multimedia no existe (aosp/987484)
  • Se corrigió un error por el que ExoPlayer no arrojaba un IllegalStateException cuando se llamaba a getDuration() en un estado IDLE (aosp/987246)
  • No permitir objetos Parcelables personalizados para media2 (aosp/1091056)
  • Se corrigió un problema que provocaba una suspensión en close() (aosp/1096455)
  • MediaBrowser: se mejoró el manejo de errores en subscribe() con MediaBrowserService (aosp/1158057)
  • Se corrigió una falla de MediaController con el framework de MediaSession(aosp/1177663)
  • No notificar la información de la sesión con devoluciones de llamada cuando se establezca la conexión (aosp/1195030, b/142925848)
  • Se corrigió un problema en el que se podía enviar un SessionResult más de una vez de forma inesperada desde MediaController (aosp/1198634)
  • Se corrigió un problema en el que MediaController podía enviar comandos no permitidos a MediaSession, por lo que MediaSession ahora envía RESULT_ERROR_PERMISSION_DENIED (aosp/1204183)
  • Se corrigió un problema de inestabilidad relacionado con MediaControllerView#setPlayer (aosp/987004)

Versión 1.0.1

Versión 1.0.1

9 de octubre de 2019

Lanzamiento de androidx.media2:media2-*:1.0.1. La versión 1.0.1 de androidx.media2:media2-{player, session}:1.0.1 contiene estas confirmaciones, y la versión 1.0.1 de androidx.media2:media2-widget:1.0.1 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió una excepción RuntimeException que se producía cuando se enviaba una subclase de MediaItem en el proceso (aosp/1098971).
  • Se corrigió un problema en el que MediaPlayer solo llamaba a onCurrentMediaItemChanged() una vez cuando se reproducía una playlist.
  • Se corrigió un problema en el que MediaPlayer podía reproducir una lista con más de dos elementos (aosp/1108440).
  • Se solucionó un problema en el cual el jugador seguía jugando en SurfaceView, incluso aunque era invisible.
  • Se solucionó un problema de reproducción de VideoView que se producía al realizar una llamada a setViewType antes del setPlayer.

Versión 1.0.0

5 de septiembre de 2019

Lanzamiento de androidx.media2:media2-*:1.0.0. Estas son las confirmaciones incluidas en media2-{player, session}:1.0.0, y estas son las confirmaciones incluidas en media2-widget:1.0.0.

Funciones principales de Media2 1.0.0

Media2 es la última generación de las siguientes API de Media: MediaSession, MediaController, MediaBrowser, MediaBrowserService, VideoView y MediaControlView.

  • media2.player.MediaPlayer
    • En su mayoría, las API se corresponden con android.media.MediaPlayer, y el motor subyacente es ExoPlayer.
    • Foco de audio y control de ruido incorporados
    • Implementa SessionPlayer
  • media2.session.MediaSession
    • Proporciona control de permisos específicos
    • Admite diseños personalizados
    • Fácil de usar con SessionPlayer, como androidx.media2.player.MediaPlayer
    • Es interoperable con MediaControllerCompat
  • media2.session.MediaSessionService
    • Una versión liviana de MediaLibraryService
    • Proporciona administración del ciclo de vida del servicio para la reproducción en segundo plano
    • Es interoperable con MediaControllerCompat y MediaBrowserServiceCompat
  • media2.session.MediaLibraryService
    • Admite una mejor paginación para navegar por elementos de contenido multimedia o por resultados de búsqueda que contienen muchos elementos
    • Es interoperable con MediaControllerCompat y MediaBrowserServiceCompat
  • media2.session.MediaController
    • Se puede conectar a MediaSession, MediaSessionService y MediaLibraryService
    • Es interoperable con MediaSessionCompat y MediaBrowserServiceCompat
  • media2.session.MediaBrowser
    • Hereda MediaController
    • Se puede conectar a MediaSession, MediaSessionService y MediaLibraryService
    • Es interoperable con MediaSessionCompat y MediaBrowserServiceCompat
  • media2.widget.VideoView
    • Contiene toda la funcionalidad de android.widget.VideoView
    • Proporciona el cambio entre TextureView y SurfaceView
    • Puede funcionar junto con MediaSession
  • media2.widget.MediaControlView
    • Tiene una mejor apariencia
    • Contiene toda la funcionalidad de android.widget.MediaController
    • Proporciona una selección de pistas de subtítulos y de velocidad de reproducción, además del modo de pantalla completa

Versión 1.0.0-rc02

22 de agosto de 2019

Lanzamiento de androidx.media2:media2-*:1.0.0-rc02. Para conocer los cambios incluidos en esta versión, consulta este vínculo. Esta versión incluye androidx.media2:media2-widget:1.0.0-rc02. Para conocer los cambios incluidos en esta versión, consulta este vínculo.

Nuevas funciones

  • setPlayer o setController ya no se pueden llamar mediante MediaControlView (MCV) cuando MediaControlView pertenece a un VideoView.

Correcciones de errores

  • MediaControlView: solo es posible hacer clic en los botones Siguiente y Anterior cuando hay elementos multimedia siguientes o anteriores.
  • MediaControlView: se corrigió un problema relacionado con inestabilidad de NullPointerException cuando se llamaba a onAttachedToWindow().
  • El widget Media2 ahora controla los metadatos del nuevo elemento multimedia correctamente si se cambia el elemento multimedia actual.

Media2-Widget versión 1.0.0-beta01

2 de julio de 2019

Lanzamiento de androidx.media2:media2-widget:1.0.0-beta01. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.

Nuevas funciones

  • Reproducción en segundo plano: en lugar de crear un reproductor dentro de VideoView, este puede usar SessionPlayer o MediaController para que la aplicación pueda pasar al modo de reproducción en segundo plano sin problemas.
  • Se quitó la dependencia con la biblioteca media2-player.
  • Se agregó onViewTypeChangedListener.

Cambios en la API

  • Cambio de visibilidad de público a protegido:
    • VideoView.onMeasure(int, int)
    • VideoView.onAttachedToWindow()
    • VideoView.onDetachedFromWindow()
    • MediaControlView.onMeasure(int, int)
  • Se quitó:
      .
    • VideoView.getSessionToken()
    • VideoView.setAudioAttributes(AudioAttributesCompat)
    • VideoView.setMedaItem(MediaItem)
    • MediaControlView.setSessionToken(SessionToken)
  • Se agregó:
      .
    • VideoView.setMediaController(MediaController)
    • VideoView.getMediaControlView()
    • VideoView.setMediaController(MediaController)
    • VideoView.setPlayer(SessionPlayer)
    • VideoView.setOnViewTypeChangedListener()
    • MediaControlView.setPlayer(SessionPlayer)
    • MediaControlView.setMediaController(MediaContoller)

Versión 1.0.0-rc01

18 de junio de 2019

Lanzamiento de androidx.media2:media2-common:1.0.0-rc01, androidx.media2:media2-player:1.0.0-rc01 y androidx.media2:media2-session:1.0.0-rc01. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Cambios en la API

  • Se volvieron a migrar las dependencias de ListenableFuture a la implementación independiente de Guava.

  • Ten en cuenta que si tienes objetivos de prueba que dependen del artefacto completo de Guava, puede haber un conflicto de resolución de dependencia al usar ciertas versiones del complemento Gradle para Android. Si encuentras el error Could not resolve all artifacts relacionado con ListenableFuture, puedes solucionar el problema de manera temporal agregando android.dependency.useConstraints=false a la configuración de compilación del proyecto. En este momento, estamos trabajando en una solución permanente dentro del complemento Gradle para Android y la lanzaremos más adelante.

Versión 1.0.0-beta02

5 de junio de 2019

Lanzamiento de androidx.media2:media2-common:1.0.0-beta02, androidx.media2:media2-player:1.0.0-beta02 y androidx.media2:media2-session:1.0.0-beta02. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Correcciones de errores

  • Al configurar la velocidad de reproducción negativa en androidx.media.player.MediaPlayer, se muestra RESULT_ERROR_BAD_VALUE.
  • Se reemplazó la implementación de Guava ListenableFuture por Jetpack (aosp/968828).

Versión 1.0.0-beta01

7 de mayo de 2019

Lanzamiento de androidx.media2:media2-common:1.0.0-beta01, androidx.media2:media2-player:1.0.0-beta01 y androidx.media2:media2-session:1.0.0-beta01. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Nuevas funciones

  • Las bibliotecas se dividen en 3 partes: media2-common, media2-player y media2-session.
  • Se reemplazó IllegalPointerException por NullPointerException para los argumentos nulos que se marcaban como @NonNull.

Cambios en la API

  • Se introdujo MediaController.Builder.
  • Se agregaron métodos de establecedor para los campos opcionales de FileMediaItem.Builder.
  • MediaController y MediaBrowser pueden enviar sugerencias de conexión de la aplicación a MediaSession, MediaSessionService o MediaLibraryService.
  • Se cambió el nombre de algunos métodos según las API de Media2 de Android 10

Versión 1.0.0-alpha04

17 de diciembre de 2018

Cambios en la API

  • Se cambiaron los nombres de las siguientes clases:
    • MediaPlayer2MediaPlayer
    • MediaSession2MediaSession
    • MediaController2MediaController
    • MediaSessionService2MediaSessionService
    • MediaLibraryService2MediaLibraryService
    • MediaBrowser2MediaBrowser
    • MediaMetadata2MediaMetadata
    • Rating2Rating
    • SessionToken2SessionToken
    • SessionCommand2SessionCommand
    • SessionCommandGroup2SessionCommandGroup
  • Se fusionaron las siguientes clases:
    • DataSourceDesc2 y MediaItem2 se combinaron en MediaItem.
    • MediaPlaylistAgent y MediaPlayerConnector se combinaron en SessionPlayer.
  • Se agregaron las siguientes subclases de Rating: HeartRating, PercentageRating, StarRating y ThumbRating.
  • Media2 ahora usa ListenableFuture para métodos asíncronos.