Como rotear dispositivos

À medida que os usuários conectam as televisões, os sistemas de home theater e os players de música com tecnologias sem fio, eles querem poder abrir conteúdo de apps Android nesses dispositivos maiores e mais altos. Ativar esse tipo de reprodução pode transformar seu app para um único dispositivo em uma experiência compartilhada que encanta e inspira vários usuários.

As APIs de roteador de mídia do Android foram projetadas para ativar a exibição e a reprodução de mídia em dispositivos receptores remotos por meio de uma interface de usuário comum. Os desenvolvedores de apps que implementam uma interface MediaRouter podem se conectar ao framework e exibir conteúdo em dispositivos que participam do framework do roteador de mídia. Fabricantes de dispositivos de reprodução de mídia podem participar do framework publicando um MediaRouteProvider que permita que outros aplicativos se conectem e abram mídia nos dispositivos receptores. A Figura 1 ilustra como um app se conecta a um dispositivo receptor pelo framework do roteador de mídia.

Figura 1. Visão geral de como as classes do provedor de roteamento de mídia oferecem comunicação de um app de mídia para um dispositivo receptor.

Observação:se você quiser que seu app ofereça suporte a dispositivos Google Cast, use o SDK do Cast e crie seu app como um remetente do Cast. Siga as instruções na documentação do Google Cast em vez de usar o framework do MediaRouter diretamente.

Biblioteca de Suporte MediaRouter

As APIs mediarouter são definidas na biblioteca AndroidX MediaRouter. Essa biblioteca é compatível com dispositivos que executam o Android 2.3 (nível 9 da API) e versões mais recentes e garante uma experiência consistente em todos eles. Para informações detalhadas sobre as APIs mediarouter, consulte o pacote androidx.mediarouter.media na Referência da API.

API MediaRouter
Um app de música usa a API MediaRouter para descobrir dispositivos de reprodução remota disponíveis e rotear áudio e vídeo para eles.
API MediaRouteProvider
A API MediaRouteProvider define os recursos de um dispositivo de reprodução remota e os torna visíveis para apps que usam um MediaRouter para procurar caminhos de mídia alternativos.

O seletor de saída.

No Android 11 e versões mais recentes, as opções de roteamento do app também aparecem no player de mídia do sistema. Isso ajuda a dar ao usuário uma jornada perfeita ao alternar entre os dispositivos enquanto eles mudam os contextos de visualização e reprodução, como assistir vídeos na cozinha ou em um smartphone ou ouvir áudio em casa ou no carro.

Pressionar o botão de seleção de rota em uma notificação de mídia exibe o seletor de saída com estas opções por padrão:

  • O alto-falante no dispositivo atual
  • Todos os dispositivos de áudio com Bluetooth conectados

Os apps também podem oferecer mais opções dependendo dos recursos, como o Google Cast.

Os apps podem usar a API MediaRouter para personalizar as opções de roteamento. É possível excluir dispositivos incompatíveis (como filtrar o Chromecast somente áudio se você estiver assistindo uma smart TV com Netflix) ou incluir outros dispositivos especiais que seu app reconheça.