Jetpack Media3 es la nueva casa de las bibliotecas multimedia que permite que las apps para Android muestren experiencias visuales y de audio enriquecidas. Media3 ofrece una arquitectura simple con una personalización, confiabilidad y optimizaciones potentes basadas en las capacidades del dispositivo para abstraer la complejidad que conlleva la fragmentación.
En este documento, se proporciona una introducción a las APIs clave para implementar casos de uso de reproducción y edición con Media3.
Componentes de reproducción
Media3 ofrece varios componentes clave para casos de uso de reproducción. Las clases que forman estos componentes te resultarán familiares si trabajaste con bibliotecas multimedia anteriores de Android.
En el siguiente diagrama, se muestra cómo se unen estos componentes en una app típica.

El reproductor multimedia
Un reproductor multimedia es un componente de tu app que permite reproducir archivos multimedia. En Media3, encontrarás lo siguiente:
Clase | Descripción | Nota de implementación |
---|---|---|
Player |
Player es una interfaz que define las funciones tradicionales de alto nivel para un reproductor multimedia, como la capacidad de reproducir, pausar y buscar.
|
En Media3, la interfaz Player es una API común que implementan o usan varios componentes, como MediaSession y MediaController , por ejemplo.
|
ExoPlayer |
ExoPlayer es la implementación predeterminada de la interfaz Player en Media3.
|
Obtén más información sobre Media3 ExoPlayer
La sesión multimedia
Una sesión multimedia proporciona una forma universal de interactuar con un reproductor multimedia. Esto permite que una app anuncie la reproducción de contenido multimedia a fuentes externas y reciba solicitudes de control de reproducción de fuentes externas. En Media3, encontrarás lo siguiente:
Clase | Descripción | Nota de implementación |
---|---|---|
MediaSession |
Las sesiones multimedia permiten que tu app interactúe con un reproductor de audio o video. Anuncian la reproducción de contenido multimedia de forma externa y reciben comandos de reproducción de fuentes externas. |
En Media3, un MediaSession necesita un Player para ejecutar comandos y obtener el estado actual.
|
MediaSessionService |
El MediaSessionService contiene una sesión multimedia y su reproductor asociado en un servicio independiente del Activity principal de tu app para facilitar la reproducción en segundo plano.
|
|
MediaController |
Por lo general, la clase MediaController se usa para enviar comandos desde fuera de la app, por ejemplo, desde otras apps o el propio sistema.
Los comandos se envían al Player subyacente del MediaSession asociado.
|
La clase MediaController implementa la interfaz Player , pero cuando se llama a un método, MediaController envía el comando enviado al MediaSession conectado. Las apps cliente, como Asistente de Google, pueden usar MediaController para controlar la reproducción en una sesión conectada.
|
MediaLibraryService |
Un MediaLibraryService es similar a un MediaSessionService , excepto que incluye APIs adicionales para que puedas publicar tu biblioteca de contenido en las apps cliente.
|
|
MediaBrowser |
La clase MediaBrowser permite al usuario navegar por la biblioteca de contenido de una app de música y seleccionar qué elementos reproducir.
|
La clase MediaBrowser implementa las interfaces MediaController y Player . Al igual que MediaController , las apps cliente, como Android Auto, suelen implementar MediaBrowser .
|
Más información sobre Media3 MediaSession
Los componentes de la IU
Media3 proporciona componentes de IU predeterminados para ver videos y controlar la reproducción.
Clase | Descripción | Nota de implementación |
---|---|---|
PlayerView |
Un View predeterminado para mostrar el video y los controles de reproducción.
|
Se conecta a ExoPlayer , MediaController o cualquier otro Player personalizado.
|
Más información sobre la IU de Media3
Cómo editar componentes
Media3 incluye las APIs de Transformer para casos de uso de edición de contenido multimedia, incluidos los siguientes:
- Procesamiento de audio y video, como agregar filtros y efectos
- Cómo controlar formatos especiales, como videos HDR y en cámara lenta
- Composición, como combinar varios archivos de entrada
- Exporta el resultado final a un archivo
Clase | Descripción | Nota de implementación |
---|---|---|
Transformer |
Usa la clase Transformer para iniciar y detener transformaciones
y para verificar si hay actualizaciones de progreso en una transformación en ejecución.
|
|
Effects |
Un objeto Effects es una colección de efectos de audio y video para aplicar a un elemento multimedia.
|
|
EditedMediaItem |
Un EditedMediaItem representa un elemento multimedia para procesar y las modificaciones que se le aplicarán.
|
Puedes usar ExoPlayer para obtener una vista previa de los efectos agregados a un elemento media antes de iniciar el proceso de exportación.
|
Más información sobre Media3 Transformer
Video introductorio
Mira el siguiente video para obtener una introducción a Media3 de los ingenieros que lo crearon.
Vínculos útiles
- Developer Center de Media
- Documentos
ExoPlayer
- Guía de migración
- AndroidX Media3 en GitHub
- App de ejemplo de la sesión multimedia de Media3
- App de ejemplo de Universal Android Music Player