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 desarrollándola para Android TV. En este documento, se proporciona orientación para hacerlo de manera eficaz.
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 la 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 para TVs, debes diseñar nuevos diseños que puedan entenderse claramente desde 3 metros de distancia y proporcionar una navegación que funcione con nada más que un mando de dirección y un botón para seleccionar.
Para obtener más información sobre consideraciones como el manejo de controles de hardware de TV, la creación de diseños para TV y la creación de navegación para TV, consulta Cómo compilar apps para TV.
Cómo usar Media3 ExoPlayer
Jetpack Media3 proporciona una interfaz de Player que define funciones básicas, como la capacidad de reproducir, pausar, buscar 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 compatibilidad con varios protocolos de transmisión, renderizadores de audio y video predeterminados, y componentes que controlan el almacenamiento en búfer de medios.
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 MediaSession
de Media3
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 principales características que distingue a Media3 de las APIs de medios anteriores es que ya no se necesitan conectores entre los componentes.
La nueva clase MediaSession
toma cualquier clase que implemente la interfaz Player. Tanto ExoPlayer como MediaController son clases que implementan esa interfaz. Esto facilita una interacción mucho más simple entre los componentes.
Para obtener más información, consulta La interfaz del reproductor.
Para obtener más información sobre cómo crear una app de reproducción multimedia, consulta Crea un reproductor multimedia básico con ExoPlayer.
Para crear la mejor experiencia para los usuarios finales de tu app de medios, 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 del estado
La biblioteca de Media3 actualiza automáticamente la sesión multimedia con el estado del reproductor. Por lo tanto, no es necesario que manejes manualmente la asignación del jugador a la sesión. Esto ayuda a garantizar que tus usuarios siempre vean la información actualizada sobre 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 ExoPlayer, que implementa la interfaz Player. Conectar la sesión multimedia al 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 música.
La sesión multimedia es la clave para controlar la reproducción. Te permite enrutar comandos de fuentes externas al reproductor que se encarga de reproducir tu contenido multimedia. Los clientes externos pueden usar un controlador multimedia para enviar comandos de reproducción a tu app de música. Estos 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, como la forma de personalizar el comportamiento de los comandos 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 cambian las entradas de la TV Esto también genera un alto consumo de energía para el hardware de la TV. Con
MediaSession
, tu app puede informar a la plataforma que está reproduciendo contenido multimedia, y la plataforma puede informar 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 a los usuarios controlar 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
A medida que extiendes tu app de música a Android TV, debes tener en cuenta los problemas de accesibilidad, cómo impulsar la participación, cómo permitir que los usuarios encuentren contenido y cómo crear juegos y servicios de entrada de TV.
Accesibilidad en TVs
Si bien las tecnologías de accesibilidad pueden ayudar a los usuarios con visión reducida, es importante brindar asistencia para la accesibilidad en los recorridos de descubrimiento de contenido de las apps para TV.
Por ejemplo, presta especial atención a brindar orientación para la navegación y etiquetar los elementos de forma adecuada, y asegúrate de que las apps para TVs funcionen bien con las 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 la conciencia. Para obtener más información sobre el ajuste 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 creadas 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 Usa MediaSession de Media3.
Como base, 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 TVs Android, así como a dispositivos Chromecast y dispositivos con el Asistente. Para obtener más información, consulta la documentación de Google Cast.
También puedes ayudar a los usuarios de las siguientes maneras:
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. Para ello, admite la vinculación de cuentas y la sincronización de derechos, ofrece la transmisión por voz y habilita Cast Connect.
Facilita los pagos integrando la facturación de Google Play y proporcionando suscripciones sin inconvenientes.
Cómo compilar el marco de trabajo 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 a través de la navegación por canales. El marco de trabajo de entrada de TV crea canales para publicar contenido de video o música en la guía de programación de TV.
El marco de trabajo 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 trasmite en Internet). Para obtener más información, consulta Cómo compilar servicios de entrada de TV.