Como usar o app de teste do controlador de mídia

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 ciclo de vida da ação de mídia

Figura 1. o ciclo de vida das ações de mídia

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

A página de lançamento do MCT
Figura 2. A página de lançamento do 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 página de controle
Figura 3. A página de controle

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:

  1. Use o menu suspenso Foco de áudio para selecionar uma das três dicas de duração. AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT ou AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. Pressione o botão para solicitar o foco.
  3. Pressione o botão novamente para soltar o foco.

Como testar controles de transporte

Como testar controles de transporte
Figura 4. 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

O botão de teste
Figura 5. O botão de teste

Para acessar os testes de verificação, clique no botão Test ao lado da sua mídia app.

Estado do MCT

O estado do controle de mídia
Figura 6. O estado do controle de mídia

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

A página de seleção de teste
Figura 7. A página "Test Selection"

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

Um resultado de teste bem-sucedido
Figura 8. um resultado de teste bem-sucedido

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 página de lançamento do MCT na TV

Figura 9. a página de lançamento do MCT na TV

A seleção de um app leva você para a tela de teste, que exibe uma lista de testes de verificação à direita.

A página de testes de verificação na TV

Figura 10. A página de testes de verificação na TV

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.

A página de informações sobre o teste na TV

Figura 11. A página "Informações de teste" na TV

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.