Ampliar seu app de música para o Android TV

O Android oferece uma experiência do usuário avançada e otimizada para apps executados em dispositivos de tela grande, como televisões de alta definição. Você pode ampliar o público-alvo do seu app desenvolvendo-o para o Android TV. Este documento fornece orientações sobre como fazer isso de forma eficaz.

Criar apps para TV

Os apps para TV têm a mesma estrutura dos apps para smartphones e tablets. Essa abordagem significa que você pode criar novos apps para TV com base no que você já sabe sobre a criação de apps para Android ou ampliar seus apps existentes para serem executados em dispositivos de TV.

No entanto, o modelo de interação do usuário para TV é significativamente diferente dos smartphones e tablets. Para que seu app funcione bem em dispositivos de TV, é necessário projetar novos layouts que possam ser claramente compreendidos a três metros de distância e fornecer uma navegação que funcione com apenas um botão direcional e um botão de seleção.

Para mais informações sobre considerações, como lidar com controladores de hardware de TV, criar layouts de TV e criar navegação para TV, consulte Criar apps para TV.

Usar o ExoPlayer da Media3

O Jetpack Media3 oferece uma interface de player que define recursos básicos, como a capacidade de reproduzir, pausar, procurar e exibir informações de faixas. O ExoPlayer é a implementação padrão dessa interface na Media3.

Em comparação com a API MediaPlayer do Android, ela adiciona outras conveniências, como suporte a vários protocolos de streaming, renderizadores padrão de áudio e vídeo e componentes que processam o armazenamento em buffer de mídia.

Você pode personalizar e ampliar o ExoPlayer, e ele pode ser atualizado nas atualizações do aplicativo da Play Store. Para saber mais, consulte ExoPlayer da Media3.

Usar a MediaSession da Media3

As sessões de mídia oferecem uma maneira universal para o sistema interagir com o player de áudio ou vídeo do seu app. Uma das principais características que distinguem a Media3 das APIs de mídia anteriores é que não há mais necessidade de conectores entre componentes.

A nova classe MediaSession usa qualquer classe que implemente a interface do jogador. Tanto o ExoPlayer quanto o MediaController são classes que implementam essa interface. Isso facilita muito a interação entre os componentes. Para mais informações, consulte Interface do player.

Para saber mais sobre como criar um app de reprodução de mídia, consulte Criar um player de mídia básico usando o ExoPlayer.

Para criar a melhor experiência para os usuários finais do seu app de música, você precisa implementar MediaSession. Para fazer isso, inicialize uma Player e forneça-a para MediaSession.Builder desta forma:

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();

Processamento automático de estado

A biblioteca Media3 atualiza automaticamente a sessão de mídia usando o estado do player. Assim, não é necessário processar manualmente o mapeamento do jogador para a sessão. Isso ajuda a garantir que os usuários sempre vejam informações atualizadas na mídia em reprodução, incluindo o card Tocando agora.

Controlar e anunciar a reprodução

Na Media3, o player padrão é a classe ExoPlayer, que implementa a interface do player. A conexão da sessão de mídia ao player permite que um app anuncia a reprodução de mídia externamente e receba comandos de reprodução de fontes externas. A sessão de mídia delega esses comandos ao player do app de música.

A sessão de mídia é a chave para controlar a reprodução. Ele permite encaminhar comandos de fontes externas para o player que executa o trabalho de reprodução da mídia. Clientes externos podem usar um controlador de mídia para emitir comandos de reprodução para seu app de música. Eles são recebidos pela sua sessão de mídia, que, por fim, delega comandos ao player de mídia.

Para saber mais sobre reprodução, por exemplo, como personalizar o comportamento do comando de reprodução, consulte Controlar e anunciar a reprodução usando a MediaSession.

Evite interrupções no seu app

O uso de MediaSession permite evitar interrupções desnecessárias, como:

  • Reprodução inesperada e contínua ao desligar a TV ou alternar entre as entradas da TV. Isso também causa um alto consumo de energia para o hardware da TV. Com MediaSession, o app pode informar à plataforma que está tocando mídia, e a plataforma pode informar que a reprodução pode ser interrompida.

  • A reprodução de música é interrompida inesperadamente ao sair do app ou desligando a tela da TV. O uso das APIs MediaSession permite a reprodução contínua em um serviço em segundo plano.

  • Interação restrita com conteúdo que impede os usuários de controlar a reprodução. Por exemplo, retornar ao app se ele estiver tocando música em segundo plano ou se ele for compatível com comandos de voz. Com o MediaSession no seu app, os usuários podem usar comandos de voz para procurar e pular músicas ou episódios.

Considerações adicionais

Ao estender seu app de música para o Android para TV, é necessário considerar problemas de acessibilidade, como gerar engajamento, como permitir que os usuários encontrem conteúdo e como criar jogos e serviços de entrada para TV.

Acessibilidade da TV

Embora as tecnologias adaptativas possam ajudar usuários com baixa visão, é importante oferecer suporte à acessibilidade nas jornadas de descoberta de conteúdo de apps para TV.

Por exemplo, preste mais atenção para fornecer orientações de navegação e rotular os elementos corretamente, além de ajudar a garantir que os apps para TV funcionem bem com recursos de acessibilidade como o TalkBack. Essas etapas podem melhorar significativamente a experiência de usuários com deficiência visual.

O primeiro passo para melhorar a acessibilidade é a conscientização. Para saber mais sobre dimensionamento de texto, layouts de teclado e audiodescrições, consulte Recursos de acessibilidade.

Práticas recomendadas para gerar engajamento no Google TV

Todos os apps criados para o Android TV funcionam em dispositivos com o Google TV. Para oferecer a melhor experiência do usuário no Google TV, recomendamos que você siga as práticas recomendadas a seguir.

Você precisa usar MediaSession para oferecer uma maneira universal de interagir com um player de áudio ou vídeo. Para mais informações sobre como implementar isso, consulte Usar a MediaSession Media3 (link em inglês).

Como linha de base, seu app precisa ser compatível com o Google Cast. Ele permite que você estenda seus apps Android, iOS e Chrome para ativar o streaming de áudio e vídeo para Android TVs, dispositivos Chromecast e dispositivos com o Assistente. Para mais informações, consulte a documentação do Google Cast.

Você também pode ajudar os usuários a:

  • Descubra conteúdo em várias plataformas ao oferecer um feed de ações de mídia ou integrar o canal "Assistir a seguir".

  • Aproveite a voz e o engajamento oferecendo suporte à vinculação de contas e à sincronização de direitos, oferecendo transmissão de voz e ativando o Cast Connect.

  • Pague com mais facilidade integrando o faturamento do Google Play e fornecendo assinaturas simples.

Criar um framework de entrada para TV

Assistir programas de TV ao vivo e outros conteúdos contínuos em canais é uma grande parte da experiência TV. Os usuários estão acostumados a escolher e assistir programas na TV navegando pelos canais. O TV Input Framework cria canais para publicar ideo ou conteúdo musical no guia de programação da TV.

O TV Input Framework oferece um método unificado para receber e reproduzir conteúdo de vídeo ao vivo de fontes de hardware, como portas HDMI e sintonizadores integrados, além de fontes de software, como vídeos transmitidos pela Internet. Para ver mais informações, consulte Criar serviços de entrada para TV.