Apps de mídia que interagem por voz com o Google Assistente em smartphones Android carros, TVs e fones de ouvido são alimentados por APIs de sessão de mídia do Android e usam ações de mídia. O ciclo de vida da ação de mídia pode ser difícil de acompanhar. Mesmo uma reprodução simples da pesquisa solicitação tem muitas etapas intermediárias em que algo pode dar errado, como mostrado cronograma simplificado:
O teste do controlador de mídia (MCT, na sigla em inglês). permite testar as complexidades da reprodução de mídia no Android e ajuda verifique a implementação da sessão de mídia.
O MCT mostra informações sobre o MediaController
do app, como as
PlaybackState
e metadados e podem ser usadas para testar controles de mídia entre apps.
O MCT também inclui um teste de verificação
framework que
permite automatizar os testes de controle de qualidade.
Para usar o MCT, seu app precisa ter um serviço de navegador de mídia e você precisa permitir que o MCT se conecte a ele. Consulte Como criar um serviço de navegador de mídia para mais informações.
Como iniciar o MCT
Ao iniciar a MCT, você verá duas listas:
- Active MediaSessions: essa lista fica inicialmente vazia quando você inicia o MCT. e a mensagem "Nenhum app de mídia encontrado. Notificação A permissão de listener é necessária para verificar sessões de mídia ativas." Clique em Configurações para Acesse a tela de permissões e ative a permissão para o MCT.
- Implementações de MediaBrowserService: esta lista mostra os apps que implementaram um serviço de navegador de mídia. Se você implementou um serviço de navegação de mídia, seu app vai aparecer nesta lista mas você só poderá usar o MCT se tiver configurado seu aplicativo para aceitar todas conexões de Internet ou incluiu o MCT na lista de permissões. Consulte Como controlar conexões de clientes com onGetRoot() (link em inglês) para mais informações.
Testar manualmente um app para smartphones
Se você permitiu que o MCT se conectasse ao serviço de navegação de mídia do seu app, ele aparece na lista de implementações da lista de serviços do navegador de mídia. Encontre tudo e clique em Control para iniciar o app em segundo plano.
Caso contrário, inicie o app por conta própria em segundo plano e depois clique em Controlar quando aparece na lista de sessões de mídia ativas.
Testes de preparo e brincadeira
Quando o MCT começa a controlar seu app, ele mostra a sessão atual do app metadados: a mídia selecionada no momento e as ações que a sessão está preparados para lidar.
A parte superior da página de controles de MCT contém um menu suspenso onde você pode selecionar Search, URI, Media ID ou None, com um campo de texto para especificar os dados de entrada associados à pesquisa, ao URI ou ao ID de mídia, se você selecione uma dessas opções.
Os botões Preparar e Reproduzir logo abaixo do campo de texto realizam
chamadas apropriadas (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
,
onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
,
onPlayFromMediaId()
) dependendo da ação selecionada.
Testando a seleção de áudio
Um app de mídia que se comporta bem deve ser capaz de lidar com áudios em foco. É possível testar a seleção de áudio executando outro aplicativo de áudio junto com seu aplicativo. A página de controles de MCT inclui um que solicita e libera a seleção de áudio.
Para testar a seleção de áudio, siga estas etapas:
- Use o menu suspenso Foco de áudio para selecionar uma das três dicas de duração.
AUDIOFOCUS_GAIN
,AUDIOFOCUS_GAIN_TRANSIENT
ouAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
. - Pressione o botão para solicitar o foco.
- Pressione o botão novamente para soltar o foco.
Como testar controles de transporte
Deslize para a esquerda para exibir a visualização da interface do MCT. Esta visualização tem os botões de transporte do controlador de mídia padrão e mostra o valor imagem e dados do programa. Os botões de transporte desativados ficam dentro de um círculo laranja. Todos os outros estão ativos.
Teste seu player usando os botões de transporte. O estado dos botões de transporte deve mudar como esperado. Por exemplo, ao pressionar o botão REPRODUZIR, deve ser desativado e os botões PAUSE e PARAR serão ativados.
Deslize para a esquerda novamente para abrir uma visualização que mostra ações opcionais. Cada ação tem um controle que mostra se ele está ativo ou não. Se estiver ativa, você pode realizar a ação clicando nele.
Se você se conectou na lista de apps que têm um serviço de navegador de mídia, poderá deslize para a esquerda mais duas vezes para acessar visualizações que permitem subir e descer pelo conteúdo do app ou pesquise na árvore de conteúdo.
Testar manualmente um app de vídeo
Use o modo de tela dividida para testar controladores de apps de vídeo. Primeiro, abra seu app de vídeo em uma janela e abrir o MCT no modo de tela dividida.
Como executar testes de verificação
O framework de teste de verificação oferece testes de um clique que podem ser executados garantir que seu app de música responda corretamente a uma solicitação de reprodução.
Testar um app para smartphones
Para acessar os testes de verificação, clique no botão Test ao lado da sua mídia app.
Estado do MCT
A próxima visualização mostra informações detalhadas sobre o MediaController
do MCT.
por exemplo, o PlaybackState
, os metadados e a fila. Há dois botões
no canto superior direito da barra de ferramentas. O botão à esquerda alterna entre analisável
e formatados. O botão à direita atualiza a visualização para exibir o
as informações mais recentes.
Como selecionar um teste
Deslizando para a esquerda, você chegará à visualização de testes de verificação, onde poderá veja uma lista rolável de testes disponíveis. Se um teste usa uma consulta, como a reproduzir a partir do teste de pesquisa mostrado na figura 7, há um campo de texto para inserir a string de consulta.
O MCT inclui testes para as seguintes ações de mídia, e mais testes foram adicionadas continuamente ao projeto:
- Reproduzir
- Reproduzir da pesquisa
- Reproduzir do código de mídia
- Reproduzir de URI
- Pausar
- Parar
- Pular para a próxima
- Pular para a anterior
- Pular para o item da fila
- Avançar para
Resultados dos testes
A área de resultados na parte inferior da visualização fica inicialmente vazia. Ela vai mostrar ao executar um teste. Por exemplo, para executar a reprodução a partir do teste de pesquisa, Digite uma consulta de pesquisa no campo de texto e clique em Executar teste. O seguinte captura de tela que mostra um resultado de teste bem-sucedido.
Como testar um app para Android TV
Ao iniciar o MCT no Android TV, você verá uma lista de apps de mídia instalados. Um app só vai aparecer nessa lista se ele implementar um navegador de mídia. serviço.
A seleção de um app leva você para a tela de teste, que exibe uma lista de testes de verificação à direita.
Quando você executa um teste, o lado esquerdo da tela exibe informações sobre a MediaController selecionado. Para mais detalhes, consulte os registros de MCT no Logcat.
Testes que exigem uma consulta são marcados com um ícone de teclado. Clicando em um esses testes abre um campo de entrada para a consulta. Clique em Enter para executar o teste.
Para facilitar a entrada de texto, também é possível usar um comando adb
:
adb shell input text your-query
Você pode usar "%s" para adicionar um espaço entre as palavras. Por exemplo, o seguinte adiciona o texto "hello world" ao campo de entrada.
adb shell input text hello%sworld
Como criar um teste
É possível enviar uma solicitação de envio com mais testes que você considera úteis. Para aprender a criar novos testes, acesse a Wiki do GitHub sobre a MTC (link em inglês) e conferir a teste de verificação instruções.
Leia as instruções de contribuição.
Outros recursos
A MCT deve ser usada em conjunto com apps que implementam APIs de mídia. Consulte a Universal Android Music Player (link em inglês) um exemplo desse tipo de aplicativo.
Correções de bugs e melhorias são sempre bem-vindas. Consulte a instruções de contribuição.