Mediarouter

Ative a exibição e a reprodução de mídia em dispositivos receptores remotos usando uma interface de usuário comum.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
21 de fevereiro de 2024 1.6.0 - 1.7.0-beta01 -

Declarar dependências

Para adicionar uma dependência ao MediaRouter, é preciso adicionar o repositório Maven do Google ao seu projeto. Confira mais informações no repositório Maven do Google.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

dependencies {
    implementation "androidx.mediarouter:mediarouter:1.6.0"
}

Kotlin

dependencies {
    implementation("androidx.mediarouter:mediarouter:1.6.0")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.7

Versão 1.7.0-beta01

21 de fevereiro de 2024

Lançamento de androidx.mediarouter:mediarouter:1.7.0-beta01 e androidx.mediarouter:mediarouter-testing:1.7.0-beta01. A versão 1.7.0-beta01 contém estas confirmações.

Versão 1.7.0-alpha02

7 de fevereiro de 2024

Lançamento de androidx.mediarouter:mediarouter:1.7.0-alpha02 e androidx.mediarouter:mediarouter-testing:1.7.0-alpha02. A versão 1.7.0-alpha02 contém estas confirmações.

Novos recursos

  • O minSdk foi movido para 19. (e8c4463).

Mudanças na API

  • Melhorias nos mapeamentos de tipos de dispositivos de MediaRouter2 para AndroidX MediaRouter para descrever rotas do sistema (por exemplo: Bluetooth, HDMI, com fio). (Iccffa).

Correções de bugs

  • Correção do bug que fazia com que isSystemRoute retornasse "true" para rotas do usuário adicionadas por android.media.MediaRouter#addUserRoute() (a27f6b).

Versão 1.7.0-alpha01

15 de novembro de 2023

Lançamento de androidx.mediarouter:mediarouter:1.7.0-alpha01 e androidx.mediarouter:mediarouter-testing:1.7.0-alpha01. A versão 1.7.0-alpha01 contém estas confirmações.

Mudanças na API

  • isSystemRoute() foi adicionado a MediaRouteDescriptor e RouteInfo, que retorna "true" se a rota correspondente for gerenciada pelo sistema. Isso significa que o sistema é o provedor da rota e o app é responsável por enviar amostras de mídia ao sistema para a renderização (I949e4). Fones de ouvido Bluetooth, fones de ouvido com fio e alto-falantes integrados são exemplos de rotas do sistema.
  • O uso de MediaRouter.removeRemoteControlClient foi descontinuado. Chame setMediaSessionCompat(MediaSessionCompat) em vez de addRemoteControlClient(Object) para que não seja necessário chamar removeRemoteControlClient(Object). (I8fc5e).
  • Agora, a MediaRouteButton estende o AppCompatImageView. (Ib455e).
  • Adicione DEVICE_TYPE_SMARTPHONE, que indica que a rota de mídia é um smartphone. (I39837).

Correções de bugs

  • Foram adicionadas resoluções de ícone ausentes para o botão de trajeto que possivelmente estava causando algumas falhas isoladas. (cddba9, b/261878418).

Versão 1.6

Versão 1.6.0

20 de setembro de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0 e androidx.mediarouter:mediarouter-testing:1.6.0. A versão 1.6.0 contém estas confirmações.

Principais recursos desde a versão 1.4.0

  • Preferências da lista de rotas para o seletor de saída.
  • Foi adicionado suporte às preferências de listagem de rotas ao AndroidX MediaRouter.
  • Inclusão de compatibilidade de visibilidade para MediaRouteDescriptor.
  • Reformulação do MediaRouteButton para oferecer uma melhor experiência ao usuário ((I9dbcb)[https://android-review.googlesource.com/#/q/I9dbcb8d9e5ee4902d48f1bfb4133e04781c6ae35). Incluindo:
    • Adicione uma dica para o usuário verificar se o dispositivo pesquisado está na mesma rede Wi-Fi.
    • Adicione um estado final com uma mensagem de erro a ser mostrada no fim de um período predefinido.
  • Foi adicionada a dispensa automática da caixa de diálogo do MediaRouter quando a tela está desativada.

Versão 1.6.0-rc01

23 de agosto de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-rc01 e androidx.mediarouter:mediarouter-testing:1.6.0-rc01. A versão 1.6.0-rc01 contém estas confirmações.

Novos recursos

  • A dispensa automática da caixa de diálogo MediaRouter quando a tela está desativada foi adicionada (Ib25ee).

Correções de bugs

  • Mudança da tag de geração de registros MediaRouter para AxMediaRouter para eliminar a ambiguidade da plataforma MediaRouter. (Ib619f).

Versão 1.6.0-beta01

9 de agosto de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-beta01 e androidx.mediarouter:mediarouter-testing:1.6.0-beta01. A versão 1.6.0-beta01 contém estas confirmações.

Mudanças na API

Correções de bugs

  • Corrija as traduções em MediaRouteChooserDialog. (d39a7f).

Versão 1.6.0-alpha05

21 de junho de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-alpha05 e androidx.mediarouter:mediarouter-testing:1.6.0-alpha05. A versão 1.6.0-alpha05 contém estas confirmações.

Novos recursos

  • A interface do MediaRouteChooserDialog foi melhorada para lidar com a falta de dispositivos descobertos, fornecendo orientação por escrito ao usuário (I0cad9, I3d445).

Versão 1.6.0-alpha04

7 de junho de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-alpha04 e androidx.mediarouter:mediarouter-testing:1.6.0-alpha04. Esta versão é desenvolvida em um branch interno.

Novos recursos

  • O MediaRouteButton foi reformulado para oferecer uma melhor experiência do usuário (I9dbcb). Incluindo:
    • Adicione uma dica para o usuário verificar se o dispositivo pesquisado está na mesma rede Wi-Fi.
    • Adicione um estado final com uma mensagem de erro a ser mostrada no fim de um período predefinido.

Mudanças na API

  • Traga novos tipos de dispositivos MediaRouteDescriptor da plataforma. (I75ba6).

Correções de bugs

  • Correção de ajuste de volume em controladores de rota não dinâmicos (I730ec).
  • Agora, MediaRouteButton está sempre ativado (I1e9ff).
  • Correção de algumas verificações de tempo de execução da versão do Android que impediam que os recursos do Android U fossem acessíveis usando a biblioteca do roteador de mídia do AndroidX (I97cab).

Versão 1.6.0-alpha03

12 de abril de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-alpha03 e androidx.mediarouter:mediarouter-testing:1.6.0-alpha03. O lançamento foi feito em uma ramificação interna.

  • Faça algumas mudanças na API de visibilidade do MediaRouteDescriptor.
  • MediaRouteActionProvider.setAlwaysVisible e MediaRouteButton.setAlwaysVisible foram descontinuados, tornando o botão de roteamento de mídia sempre visível, independentemente da conectividade de rede ou da disponibilidade de rotas de mídia.
  • Correção do ajuste de volume para controladores de rota não dinâmicos. Isso resolve um bug em que tentar ajustar o volume de uma rota no seletor de saída faz com que o volume volte ao valor original (93f409).

Versão 1.6.0-alpha02

8 de março de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-alpha02 e androidx.mediarouter:mediarouter-testing:1.6.0-alpha02. Desenvolvido em uma ramificação interna.

Novos recursos

  • Foi adicionado suporte a preferências de listagem de rotas ao AndroidX MediaRouter
  • Foi adicionado suporte de visibilidade para MediaRouteDescriptor.

Correções de bugs

  • Melhoria na invocação do seletor de saída do SystemUI no Android U e versões mais recentes.

Versão 1.6.0-alpha01

10 de fevereiro de 2023

Lançamento de androidx.mediarouter:mediarouter:1.6.0-alpha01. A versão 1.6.0-alpha01 contém estas confirmações.

Novos recursos

  • Preferências da lista de rotas para o seletor de saída.

Mudanças na API

  • Mecanismo para o app configurar o seletor de saída.

Versão 1.4

Versão 1.4.0

3 de maio de 2023

Lançamento de androidx.mediarouter:mediarouter:1.4.0 e androidx.mediarouter:mediarouter-testing:1.4.0. A versão 1.4.0 contém estas confirmações.

Mudanças importantes desde a versão 1.3.1

  • SystemOutputSwitcherDialogController#showDialog foi adicionado para mostrar a caixa de diálogo do seletor de saída do sistema ou o fragmento de configurações do Bluetooth em dispositivos Wear em que o seletor não está disponível (Ic3d78).
  • Correção da regressão que causa falhas no app devido a IllegalArgumentException no MediaRouterProvider.notifyDynamicRoutesChanged (7d17ea).
  • MediaRouteDescriptor.Builder.clearControlFilters foi adicionado (I3a4e1).
  • As anotações MainThread ausentes em MediaRouter foram adicionadas (I3ef6e).
  • Foram adicionadas flags de exportação do broadcast receiver na API 33 e mais recentes (b2a663).

Versão 1.4.0-rc01

5 de abril de 2023

Lançamento de androidx.mediarouter:mediarouter:1.4.0-rc01 e androidx.mediarouter:mediarouter-testing:1.4.0-rc01. A versão 1.4.0-rc01 contém estas confirmações.

  • As listas nulas foram removidas no MediaRouteProviderDescriptor.

Versão 1.4.0-beta02

22 de fevereiro de 2023

Lançamento de androidx.mediarouter:mediarouter:1.4.0-beta02. A versão 1.4.0-beta02 contém estas confirmações.

Correções de bugs

  • Correção da regressão que causa falhas no app devido a IllegalArgumentException no MediaRouterProvider.notifyDynamicRoutesChanged (7d17ea).

Versão 1.4.0-beta01

25 de janeiro de 2023

Lançamento de androidx.mediarouter:mediarouter:1.4.0-beta01. A versão 1.4.0-beta01 contém estas confirmações.

Mudanças na API

DynamicGroupRouteController.notifyDynamicRoutesChanged() agora gera IllegalArgumentException quando nenhuma rota transmitida está como SELECTED ou SELECTING (8f6b3e).

Correções de bugs

  • Correção da falha causada por uma implementação de serviço do provedor compatível com a API que retornava um provedor de rota nulo (63f16d).
  • Quando marcados como não exportados, os receptores de transmissão protegidos funcionam em apps direcionados à API 33 ou mais recente (784f8b).
  • Correção de algumas anotações de nulidade falsas em OverlayListView (472e3f).
  • Correção do bug em que o EXTRA_CLOSE_ON_CONNECT em SystemOutputSwitcherDialogController.showDialog forçava o fechamento repentino do fragmento de configurações do Bluetooth em dispositivos Wear (28c9d8).
  • Os métodos públicos do switch de saída foram mudados para Javadoc (f0ae94, 44d2c9).

Versão 1.4.0-alpha01

9 de novembro de 2022

Lançamento de androidx.mediarouter:mediarouter:1.4.0-alpha01. A versão 1.4.0-alpha01 contém estas confirmações.

Novos recursos

  • SystemOutputSwitcherDialogController#showDialog foi adicionado para mostrar a caixa de diálogo do seletor de saída do sistema ou o fragmento de configurações do Bluetooth em dispositivos Wear em que o seletor não está disponível (Ic3d78).

Mudanças na API

  • MediaRouteDescriptor.Builder.clearControlFilters foi adicionado (I3a4e1).
  • As anotações MainThread ausentes em MediaRouter foram adicionadas (I3ef6e).

Correções de bugs

  • Foi corrigida uma falha específica do dispositivo causada ao chamar MediaRouter.removeUserRoute (b/202931542).
  • Foram corrigidos descritores de grupo que não recebem atualizações de processamento de volume de forma consistente (461303).
  • Foram adicionadas flags de exportação do broadcast receiver na API 33 e mais recentes (b2a663).
  • Foi corrigida uma falha causada pelo recebimento de descritores de trajeto inválidos da plataforma (dd5c09).

Versão 1.3

Versão 1.3.1

27 de julho de 2022

Lançamento de androidx.mediarouter:mediarouter:1.3.1. A versão 1.3.1 contém estas confirmações.

Correções de bugs

  • Resolução de um problema específico do dispositivo em que MediaRouter.removeUserRoute() gerava uma IllegalArgumentException inesperada (b/202931542).

Versão 1.3.0

20 de abril de 2022

Lançamento de androidx.mediarouter:mediarouter:1.3.0. A versão 1.3.0 contém estas confirmações.

Mudanças importantes desde a versão 1.2.0

  • Uma flag, que pode ser usada para desativar a transferência integrada durante a execução, foi adicionada a MediaRouterParams.
  • Foi adicionado um artefato de teste que pode redefinir o MediaRouter.
  • Um parâmetro de roteador foi adicionado para ajuste da UX em MediaRouterControllerDialog.
  • Nulidade anotada para métodos públicos.
  • A verificação de lint da API para MissingGetterMatchingBuilder foi ativada para o androidx.
  • A dependência da biblioteca core na mediarouter versão 1.6.0 foi atualizada.

Versão 1.3.0-rc01

23 de março de 2022

Lançamento de androidx.mediarouter:mediarouter:1.3.0-rc01. A versão 1.3.0-rc01 contém estas confirmações.

  • Nenhuma mudança desde a última versão Beta.

Versão 1.3.0-beta01

9 de março de 2022

Lançamento de androidx.mediarouter:mediarouter:1.3.0-beta01. A versão 1.3.0-beta01 contém estas confirmações.

  • Nenhuma mudança desde a última versão Alfa.

Versão 1.3.0-alpha01

15 de dezembro de 2021

Lançamento de androidx.mediarouter:mediarouter:1.3.0-alpha01. A versão 1.3.0-alpha01 contém estas confirmações.

Mudanças na API

  • Uma flag, que pode ser usada para desativar a transferência integrada durante a execução, foi adicionada a MediaRouterParams (I53d68).
  • Foi adicionado um artefato de teste que pode redefinir o MediaRouter (Id167c).
  • Um parâmetro de roteador foi adicionado para ajuste da UX em MediaRouterControllerDialog (I7e574).
  • Anotações de nulidade para métodos públicos (Ifc901)

Correções de bugs

  • A verificação de lint da API para MissingGetterMatchingBuilder está ativada para o androidx (I4bbea, b/138602561).

Versão 1.2

Versão 1.2.6

26 de janeiro de 2022

Lançamento de androidx.mediarouter:mediarouter:1.2.6. A versão 1.2.6 contém estas confirmações.

Correções de bugs

  • Correção da falha do construtor RemotePlaybackClient no Android 12 (b/210684559)

Versão 1.2.5

1º de setembro de 2021

Lançamento de androidx.mediarouter:mediarouter:1.2.5. A versão 1.2.5 contém estas confirmações.

Correções de bugs

  • O botão de roteamento de mídia é ocultado no seletor de saída quando não há rotas para transferir.
  • Foram corrigidos problemas no controle do volume de rotas dos membros do grupo.

Versão 1.2.4

16 de junho de 2021

Lançamento de androidx.mediarouter:mediarouter:1.2.4. A versão 1.2.4 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema em que o MediaRouteButton reproduzia novamente a animação de conexão.
  • Correção do alinhamento vertical das rotas em MediaRouteChooserDialog.

Versão 1.2.3

5 de maio de 2021

Lançamento de androidx.mediarouter:mediarouter:1.2.3. A versão 1.2.3 contém estas confirmações.

Correções de bugs

  • A NullPointerException foi corrigida na caixa de diálogo de seletor personalizada.
  • Foi corrigido um problema em que a classe MediaRouteButton mostrava o estado desconectado, mesmo quando conectado, caso fosse desativada temporariamente.

Versão 1.2.2

10 de fevereiro de 2021

Lançamento de androidx.mediarouter:mediarouter:1.2.2. A versão 1.2.2 contém estas confirmações.

Correções de bugs

  • A biblioteca não tenta mais selecionar novamente a rota já selecionada quando OnDynamicRouteChangedListener.onRouteChanged for chamado.

Versão 1.2.1

13 de janeiro de 2021

Lançamento de androidx.mediarouter:mediarouter:1.2.1. A versão 1.2.1 contém estas confirmações.

Correções de bugs

  • Correção da seleção de alto-falante do smartphone quando unselect() é chamado enquanto o BT está disponível.
  • Correção do tempo de MediaRouter.Callback. Callback#onRouteSelected e Callback#onRouteUnselected serão chamados depois que a operação OnPrepareTransferListener#onPrepareTransfer for concluída.

Versão 1.2.0

14 de outubro de 2020

Lançamento de androidx.mediarouter:mediarouter:1.2.0. A versão 1.2.0 contém estas confirmações.

Principais recursos desde a versão 1.1.0

  • Suporte à transferência de mídia integrada, que permite a transferência pela interface do sistema. Assista ao vídeo Novidades relacionadas à mídia para saber mais.
  • Mudanças na orientação sobre o registro de callback. Confira o código de exemplo no Javadoc de MediaRouter.addCallback().
  • Adição de um novo listener MediaRouter#OnPrepareTransferListener para receber eventos quando a rota selecionada estiver prestes a ser mudada.
  • MediaRouterParams foram adicionados para denotar a funcionalidade de roteamento e os tipos de interface.
  • Impedimento de usos alternativos de métodos exclusivamente internos com @RestrictTo(LIBRARY).

Versão 1.2.0-rc02

1º de outubro de 2020

Lançamento de androidx.mediarouter:mediarouter:1.2.0-rc02. A versão 1.2.0-rc02 contém estas confirmações.

Correções de bugs

  • Foi corrigido um problema em que RouteController#onUnselect podia não ser chamado quando o usuário interrompia a transmissão pela interface do sistema.

Versão 1.2.0-rc01

16 de setembro de 2020

Lançamento do androidx.mediarouter:mediarouter:1.2.0-rc01. A versão 1.2.0-rc01 contém estas confirmações.

Correções de bugs

  • Foi corrigida a desconexão da transmissão atual quando o dispositivo de áudio Bluetooth está conectado.
  • Foi corrigida a geração de IllegalArgumentException em MediaRouteProvider#notifyDynamicRoutesChanged().
  • Agora é possível parar a transmissão no seletor de saída.

Versão 1.2.0-beta01

2 de setembro de 2020

Lançamento de androidx.mediarouter:mediarouter:1.2.0-beta01. A versão 1.2.0-beta01 contém estas confirmações.

Novos recursos

  • Suporte à transferência de mídia integrada, que permite a transferência pela interface do sistema. Assista ao vídeo Novidades relacionadas à mídia para saber mais.

Mudanças na API

  • MediaRouter.OnPrepareTransferListener agora usa ListenableFuture.

Correções de bugs

  • Correção dos controles de volume das rotas de grupo.
  • Quando uma rota em grupo é criada, primeiro é feita a criação da rota de grupo e depois das de membro.
  • Agora "Parar" funciona no seletor de saída
  • Correção dos callbacks que não são chamados
    • RouteController#onSelect quando uma sessão de roteamento é criada.
    • MediaRouter.Callback#onRouteSelected ao transferir do Chromecast para o smartphone.
    • MediaRouter.Callback#onRouteSelected com as informações de rota do grupo corretas.
  • Agora os callbacks são removidos.

Versão 1.2.0-alpha02

22 de julho de 2020

Lançamento de androidx.mediarouter:mediarouter:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Mudanças na API

  • Um novo MediaRouter.Callback#onRouteSelected foi adicionado para receber uma notificação quando a rota selecionada é diferente da solicitada (Ieee16).
  • Um novo listener MediaRouter#OnPrepareTransferListener foi adicionado para receber eventos quando a rota selecionada está prestes a mudar (I6ace1).
  • MediaRouterParam foi adicionado (I33150).
  • Mudanças na orientação sobre o registro de callback. Confira o código de exemplo no Javadoc de MediaRouter.addCallback() (I58112).

Versão 1.2.0-alpha01

15 de abril de 2020

Lançamento de androidx.mediarouter:mediarouter:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estas confirmações.

Mudanças na API

  • Impedimento de usos alternativos de métodos exclusivamente internos com @RestrictTo(LIBRARY).

Correções de bugs

  • Resolução de problema de talkback na caixa de diálogo de transmissão
  • O listener de DynamicGroupRouterController foi protegido com um bloqueio.

Versão 1.1

Versão 1.1.0

5 de setembro de 2019

Lançamento de androidx.mediarouter:mediarouter:1.1.0. As confirmações incluídas nessa versão podem ser encontradas neste link (em inglês).

Importar mudanças desde a versão 1.0.0

  • Suporte a grupos dinâmicos
    • Permite que os usuários adicionem ou removam dispositivos de rota dinamicamente.
    • Para ativar um grupo dinâmico, chame MediaRouteButton.enableDynamicGroup(). O app mostra uma nova caixa de diálogo para o grupo dinâmico.
    • O arquivo MediaRouteProvider instalado também precisa oferecer suporte ao grupo dinâmico para ativar a funcionalidade.

Versão 1.1.0-rc01

13 de junho de 2019

Lançamento do androidx.mediarouter:mediarouter:1.1.0-rc01 sem mudanças desde o 1.1.0-beta02. As confirmações incluídas nessa versão podem ser encontradas neste link (em inglês).

Versão 1.1.0-beta02

5 de junho de 2019

Lançamento de androidx.mediarouter:mediarouter:1.1.0-beta02. As confirmações incluídas nessa versão podem ser encontradas neste link.

Novos recursos

  • Suporte a idiomas que usam escrita da direita para a esquerda (RTL, na sigla em inglês) nas caixas de diálogo do MediaRouter.

Correções de bugs

  • O preenchimento inferior das caixas de diálogo do MediaRouter foi corrigido.

Versão 1.1.0-beta01

7 de maio de 2019

Lançamento de androidx.mediarouter:mediarouter:1.1.0-alpha01. As confirmações incluídas nessa versão podem ser encontradas neste link.

Novos recursos

  • Mudança de IllegalPointerException para NullPointerException nos argumentos nulos marcados como @NonNull.

Mudanças na API

  • A lógica de callback para DynamicRouteDescriptor mudou. Agora, MediaRouteProvider chamará MediaRouterProvider.DynamicGroupController.notifyDynamicRoutesChanged em vez de chamar diretamente o método de callback.

Versão 1.1.0-alpha03

3 de abril de 2019

Lançamento de androidx.mediarouter:mediarouter:1.1.0-alpha03. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Correções de bugs

  • Correção de falhas no MediaRouteVolumeSlider e RegisteredMediaRouteProvider.

Versão 1.1.0-alpha02

13 de março de 2019

Lançamento de androidx.mediarouter:mediarouter:1.1.0-alpha02. A lista completa de confirmações incluídas nessa versão pode ser encontrada neste link.

Novos recursos

  • Suporte a MediaRouteButton na visualização de layout do Android Studio.

Mudanças na API

  • O método enableDynamicGroup() foi adicionado em MediaRouteActionProvider e MediaRouteButton para ativar o recurso de grupo dinâmico.
  • O método setAlwaysVisible(boolean) foi adicionado em MediaRouteActionProvider e MediaRouteButton para permitir que MediaRouteButton fique sempre visível.

Correções de bugs

  • As linhas de MediaRouteCastDialog ficaram fáceis de clicar.
  • Chamadas desnecessárias removidas do callback de onRouteChanged.

Versão 1.1.0-alpha01

3 de dezembro de 2018

Novos recursos

  • Adição de compatibilidade com rotas de grupo dinâmico
    • Foram adicionadas APIs que oferecem suporte a rotas de grupos dinâmicos por MediaRouteProviders.
    • Foi adicionada uma nova UX para caixas de diálogo de seletor e controlador de rotas de grupo dinâmico.