Cómo extender tu app de música a Android TV

Android ofrece una experiencia del usuario enriquecida y optimizada para las apps que se ejecutan en dispositivos con pantallas grandes, como televisores de alta definición. Puedes desarrollar el público de tu app para Android TV. En este documento, se proporciona orientación sobre cómo hacerlo de manera efectiva.

Cómo compilar apps para TV

Las apps para TV usan la misma estructura que las apps para teléfonos y tablets. Este enfoque te permite crear nuevas apps para TV en función de lo que ya sabes sobre compilación de apps para Android, o bien extender tus apps existentes de modo que también se ejecuten en dispositivos de TV.

Sin embargo, el modelo de interacción del usuario para TV es bastante diferente del de teléfonos y tablets. Para que tu app tenga éxito en TVs, debes crear nuevos diseños que se puedan entender claramente desde 3 metros de distancia, y ofrecer una navegación que funcione solo con un mando de dirección y un botón para seleccionar.

Para obtener más información sobre consideraciones como el manejo de controladores de hardware de TV, la compilación de diseños y la navegación para TV, consulta Cómo compilar apps para TV.

Usa Media3 ExoPlayer

Jetpack Media3 proporciona una interfaz de reproductor que define funciones básicas, como la capacidad de reproducir, pausar, buscar y mostrar información de la pista. ExoPlayer es la implementación predeterminada de esta interfaz en Media3.

En comparación con la API de MediaPlayer de Android, esta última agrega ventajas adicionales, como la compatibilidad con varios protocolos de transmisión, procesadores de audio y video predeterminados, y componentes que controlan el almacenamiento en búfer de contenido multimedia.

Puedes personalizar y extender ExoPlayer, y se puede actualizar a través de las actualizaciones de aplicaciones de Play Store. Para obtener más información, consulta Media3 ExoPlayer.

Usa Media3 MediaSession

Las sesiones multimedia proporcionan una manera universal para que el sistema interactúe con el reproductor de audio o video de tu app. Una de las características principales que diferencia a Media3 de las APIs de contenido multimedia anteriores es que ya no se necesitan conectores entre los componentes.

La nueva clase MediaSession toma cualquier clase que implemente la interfaz del reproductor. Tanto ExoPlayer como MediaController son clases que implementan esa interfaz. Esto facilita una interacción mucho más sencilla entre los componentes. Para obtener más información, consulta La interfaz del reproductor.

Si quieres obtener más información para crear una app de reproducción de contenido multimedia, consulta Cómo crear un reproductor multimedia básico con ExoPlayer.

Si quieres crear la mejor experiencia para los usuarios finales de tu app de música, debes implementar MediaSession. Para hacerlo, inicializa un Player y proporciónalo a MediaSession.Builder de la siguiente manera:

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

Control de estado automático

La biblioteca Media3 actualiza automáticamente la sesión multimedia con el estado del reproductor. Por lo tanto, no necesitas controlar de forma manual la asignación del jugador a la sesión. De esta manera, te aseguras de que los usuarios siempre vean información actualizada en el contenido multimedia que se está reproduciendo, incluso en la tarjeta de Está sonando.

Cómo controlar y anunciar la reproducción

En Media3, el reproductor predeterminado es la clase de ExoPlayer, que implementa la interfaz del reproductor. Si conectas la sesión multimedia al reproductor, una app podrá anunciar la reproducción de contenido multimedia externamente y recibir comandos de reproducción de fuentes externas. La sesión multimedia delega estos comandos al reproductor de la app multimedia.

La sesión multimedia es la clave para controlar la reproducción. Te permite enrutar comandos de fuentes externas al reproductor que hace el trabajo de reproducir el contenido multimedia. Los clientes externos pueden usar un controlador multimedia para emitir comandos de reproducción a tu app de música. La sesión multimedia los recibe, que, en última instancia, delega los comandos al reproductor multimedia.

Para obtener más información sobre la reproducción (por ejemplo, cómo personalizar el comportamiento del comando de reproducción), consulta Cómo controlar y anunciar la reproducción con MediaSession.

Evita interrupciones en tu app

Usar MediaSession te permite evitar interrupciones innecesarias como las siguientes:

  • Reproducción inesperada y continua cuando se apaga la TV o se cambia de entrada Esto también provoca un alto consumo de energía para el hardware de TV. Con MediaSession, tu app puede informar a la plataforma que está reproduciendo contenido multimedia, y esta puede informarle que se puede detener la reproducción.

  • La reproducción de música se detiene de forma inesperada cuando sales de la app o apagas la pantalla de la TV. El uso de las APIs de MediaSession permite la reproducción continua en un servicio en segundo plano.

  • Interacción restringida con el contenido que impide a los usuarios controlar la reproducción Por ejemplo, regresar a la app si reproduce música en segundo plano o admite comandos por voz. Con MediaSession en tu app, los usuarios pueden usar comandos por voz para buscar y omitir canciones o episodios.

Consideraciones adicionales

A medida que extiendes tu app de música a Android para TV, debes considerar los problemas de accesibilidad, cómo impulsar la participación, cómo permitir que los usuarios encuentren contenido y cómo compilar juegos y servicios de entrada de TV.

Accesibilidad en TVs

Si bien las tecnologías de accesibilidad pueden ayudar y pueden ayudar a los usuarios con visión reducida, es importante admitir la accesibilidad en los recorridos de descubrimiento de contenido para las apps para TV.

Por ejemplo, presta especial atención a brindar una guía de navegación y etiquetar elementos correctamente, y ayuda a garantizar que las apps para TV funcionen bien con funciones de accesibilidad como TalkBack. Estos pasos pueden mejorar significativamente la experiencia de los usuarios con discapacidad visual.

El primer paso para mejorar la accesibilidad es el reconocimiento. Para obtener más información sobre el escalamiento de texto, los diseños de teclado y las audiodescripciones, consulta los recursos de accesibilidad.

Prácticas recomendadas para aumentar la participación en Google TV

Todas las apps diseñadas para Android TV funcionan en dispositivos que ejecutan Google TV. Para proporcionar la mejor experiencia del usuario en Google TV, te sugerimos que apliques las siguientes prácticas recomendadas.

Debes usar MediaSession para proporcionar una forma universal de interactuar con un reproductor de audio o video. Si deseas obtener más información para implementar esto, consulta Cómo usar Media3 MediaSession.

Como base, tu app debe ser compatible con Google Cast. Te permite extender tus apps para Android, iOS y Chrome a fin de habilitar la transmisión de audio y video a Android TV, así como a dispositivos Chromecast y con el Asistente integrado. Para obtener más información, consulta la documentación de Google Cast.

También puedes ayudar a los usuarios a hacer lo siguiente:

  • Descubre contenido en todas las plataformas ofreciendo un feed de acciones multimedia o integrando Ver a continuación.

  • Aprovecha la voz y la participación mediante la compatibilidad con la vinculación de cuentas y la sincronización de derechos, la transmisión de contenido por voz y la habilitación de Cast Connect.

  • Paga con más facilidad mediante la integración de la Facturación Google Play y la provisión de suscripciones sin inconvenientes.

Cómo compilar el framework de entrada de TV

Mirar programas de TV en vivo y otro contenido continuo basado en canales es una parte importante de la experiencia de TV. Los usuarios están acostumbrados a seleccionar y mirar programas en la TV mediante la navegación de canales. El framework de entrada de TV crea canales para publicar ideas o contenido musical en la guía de programación de TV.

El framework de entrada de TV proporciona un método unificado para la recepción y reproducción de contenido de video en vivo desde fuentes de hardware, como puertos HDMI y sintonizadores integrados, y fuentes de software, como videos transmitidos por Internet. Para obtener más información, consulta Cómo compilar servicios de entrada de TV.