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 los televisores de alta definición. Puedes ampliar el público de tu app si la desarrollas para Android TV. En este documento, se proporciona orientación para hacerlo de manera efectiva.

Cómo crear apps para TV

Las apps para TV usan la misma estructura que las apps para teléfonos y tablets. Por lo tanto, puedes crear nuevas apps para TV en función de lo que ya sabes sobre compilación de apps para Android, o bien expandir tus apps existentes de manera que se ejecuten en dispositivos de TV.

Sin embargo, el modelo de interacción del usuario para TV es bastante diferente al de teléfonos y tablets. Para que tu app tenga éxito en dispositivos de TV, debes crear nuevos diseños que puedan entenderse claramente a 3 metros de distancia y proporcionar 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 cómo controlar los controladores de hardware de TV, compilar diseños de TV y crear navegación para TV, consulta Cómo compilar apps para TV.

Usa Media3 ExoPlayer

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

En comparación con la API de MediaPlayer de Android, agrega comodidades adicionales, como la compatibilidad con varios protocolos de transmisión, renderizadores 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 la aplicación de Play Store. Para obtener más información, consulta Media3 ExoPlayer.

Usa Media3 MediaSession

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

La nueva clase MediaSession toma cualquier clase que implemente la interfaz de Player. 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 de Player.

Para obtener más información sobre cómo crear una app de reproducción multimedia, consulta Cómo crear un reproductor multimedia básico con ExoPlayer.

Si deseas crear la mejor experiencia para los usuarios finales de tu app de música, debes implementar MediaSession. Para ello, 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();

Manejo automático de estado

La biblioteca Media3 actualiza automáticamente la sesión multimedia con el estado del reproductor. Por lo tanto, no necesitas controlar manualmente la asignación del jugador a la sesión. Esto ayuda a garantizar que los usuarios siempre vean la información actualizada en el contenido multimedia que se está reproduciendo, incluida la tarjeta Está sonando.

Cómo controlar y anunciar la reproducción

En Media3, el reproductor predeterminado es la clase ExoPlayer, que implementa la interfaz de Player. La conexión de la sesión multimedia con el reproductor permite que una app anuncie la reproducción de contenido multimedia de forma externa y reciba comandos de reproducción de fuentes externas. La sesión multimedia delega estos comandos al reproductor de la app de contenido multimedia.

La sesión multimedia es la clave para controlar la reproducción. Te permite enrutar comandos de fuentes externas al reproductor que reproduce tu contenido multimedia. Los clientes externos pueden usar un controlador multimedia para enviar comandos de reproducción a tu app de contenido multimedia. Los recibe tu sesión multimedia, 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 causa un alto consumo de energía en el hardware de la TV. Con MediaSession, tu app puede informarle a la plataforma que está reproduciendo contenido multimedia, y la plataforma puede informarle a la app 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 que los usuarios controlen la reproducción. Por ejemplo, volver a tu app si está reproduciendo música en segundo plano o admitir comandos por voz. Con MediaSession en tu app, los usuarios pueden usar comandos por voz para buscar y omitir canciones o episodios.

Consideraciones adicionales

Cuando extiendes tu app de música a Android para TV, debes tener en cuenta los problemas de accesibilidad, cómo generar participación, cómo permitir que los usuarios encuentren contenido y cómo compilar juegos y servicios de entrada de TV.

Accesibilidad en TV

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

Por ejemplo, presta especial atención a proporcionar orientación de navegación y etiquetar correctamente los elementos, y asegúrate de que las apps para TV funcionen bien con funciones de accesibilidad, como TalkBack. Estos pasos pueden mejorar significativamente la experiencia de los usuarios con discapacidades visuales.

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

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

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

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

Como referencia, tu app debe ser compatible con Google Cast. Te permite extender tus apps para Android, iOS y Chrome para habilitar la transmisión de audio y video a Android TVs, así como a dispositivos Chromecast y Asistente. 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 Mirar a continuación.

  • Aprovecha la voz y la participación admitiendo la vinculación de cuentas y la sincronización de derechos, ofreciendo transmisión por voz y habilitando Cast Connect.

  • Realiza pagos con mayor facilidad integrando la Facturación Google Play y proporcionando 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 por canales. El framework de entrada de TV crea canales para publicar contenido de video o música 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, como fuentes de hardware (por ejemplo, puertos HDMI y sintonizadores integrados) y fuentes de software (como el contenido de video que se transmite en Internet). Para obtener más información, consulta Cómo compilar servicios de entrada de TV.