Использование приложения для тестирования медиаконтроллера

Медиа-приложения, которые взаимодействуют голосом с Google Assistant на телефонах, автомобилях, телевизорах и наушниках Android, работают на базе API-интерфейсов мультимедийных сеансов Android и используют мультимедийные действия. Жизненный цикл действий СМИ может быть трудным для отслеживания. Даже простая игра по поисковому запросу имеет множество промежуточных шагов, на которых что-то может пойти не так, как показано на упрощенной временной шкале:

Жизненный цикл медиа-действий

Рисунок 1. Жизненный цикл медиа-действия

Приложение Media Controller Test (MCT) позволяет вам протестировать тонкости воспроизведения мультимедиа на Android и помогает проверить реализацию вашего медиа-сеанса.

MCT отображает информацию о MediaController вашего приложения, такую ​​как его PlaybackState и метаданные, и может использоваться для тестирования элементов управления мультимедиа между приложениями. MCT также включает в себя структуру проверочного тестирования , которая позволяет автоматизировать тестирование качества.

Чтобы использовать MCT, ваше приложение должно иметь службу медиабраузера, и вы должны разрешить MCT подключаться к ней. Дополнительную информацию см. в разделе Создание службы медиабраузера .

Запуск МСТ

Стартовая страница MCT
Рисунок 2. Стартовая страница MCT.

Когда вы запустите MCT, вы увидите два списка:

  • Активные сеансы мультимедиа . Этот список изначально пуст при запуске MCT, и вы увидите сообщение «Мультимедийные приложения не найдены. Для сканирования активных сеансов мультимедиа требуется разрешение прослушивателя уведомлений». Нажмите «Настройки» , чтобы перейти на экран разрешений и включить разрешение для MCT.
  • Реализации MediaBrowserService — в этом списке показаны приложения, в которых реализована служба медиабраузера. Если вы внедрили службу медиабраузера, ваше приложение появится в этом списке, но вы сможете использовать MCT только в том случае, если вы настроили свое приложение на прием всех подключений или включили MCT в белый список. Дополнительную информацию см. в разделе Управление клиентскими соединениями с помощью onGetRoot() .

Тестирование приложения для телефона вручную

Если вы разрешили MCT подключаться к службе медиабраузера вашего приложения, ваше приложение появится в списке реализаций службы медиабраузера. Найдите его там и нажмите «Управление» , чтобы запустить приложение в фоновом режиме.

В противном случае вам придется сначала запустить приложение самостоятельно в фоновом режиме, а затем нажать «Управление» , когда оно появится в списке активных сеансов мультимедиа.

Тестирование готовимся и играем

Когда MCT начинает управлять вашим приложением, он отображает метаданные текущего сеанса приложения: текущий выбранный носитель и действия, которые сеанс готов обработать.

Страница управления
Рисунок 3. Страница управления

В верхней части страницы элементов управления MCT содержится раскрывающееся меню, в котором вы можете выбрать Search , URI , Media ID или None , а также текстовое поле для указания входных данных, связанных с Search, URI или Media ID, если вы выберете один из таких вариантов.

Кнопки «Подготовка» и «Воспроизведение» чуть ниже текстового поля выполняют соответствующие вызовы ( onPrepare() , onPrepareFromSearch() , onPrepareFromUri() , onPrepareFromMediaId() , onPlay() , onPlayFromSearch() , onPlayFromUri() , onPlayFromMediaId() ) в зависимости от того, что действие, которое вы выбрали.

Тестирование аудиофокуса

Правильное мультимедийное приложение должно иметь возможность обрабатывать аудио-фокус . Вы можете проверить фокусировку звука, запустив параллельно с вашим приложением другое аудиоприложение. Страница элементов управления MCT содержит кнопку, которая запрашивает и отпускает фокус звука.

Чтобы проверить фокусировку звука, выполните следующие действия:

  1. Используйте раскрывающееся меню Audio Focus , чтобы выбрать одну из трех подсказок по продолжительности: AUDIOFOCUS_GAIN , AUDIOFOCUS_GAIN_TRANSIENT или AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK .
  2. Нажмите кнопку, чтобы запросить фокусировку.
  3. Нажмите кнопку еще раз, чтобы снять фокус.

Тестирование средств контроля транспорта

Тестирование средств управления транспортом
Рисунок 4. Тестирование средств управления транспортом

Проведите пальцем влево, чтобы отобразить вид пользовательского интерфейса MCT. Это представление имеет стандартные кнопки транспорта медиа-контроллера и отображает изображение программы и данные сеанса. Неактивные кнопки транспорта обведены оранжевым цветом. Все остальные активны.

Проверьте свой плеер с помощью кнопок транспорта. Состояние кнопок транспорта должно измениться ожидаемым образом. Например, при нажатии кнопки PLAY она должна отключиться, а кнопки PAUSE и STOP станут активными.

Смахните влево еще раз, чтобы просмотреть дополнительные действия. Каждое действие имеет элемент управления, который показывает, активно оно или нет. Если он активен, вы можете выполнить действие, нажав на него.

Если вы подключились из списка приложений, в которых есть служба медиабраузера, вы можете провести влево еще два раза, чтобы просмотреть представления, которые позволят вам перемещаться вверх и вниз по иерархии контента вашего приложения или выполнять поиск в дереве контента.

Тестирование видеоприложения вручную

Используйте режим разделенного экрана для тестирования контроллеров видеоприложений. Сначала откройте видеоприложение в одном окне, а затем откройте MCT в режиме разделенного экрана.

Запуск проверочных тестов

Платформа проверочного тестирования предлагает тесты в один клик, которые вы можете запустить, чтобы убедиться, что ваше мультимедийное приложение правильно реагирует на запрос воспроизведения.

Тестирование приложения для телефона

Кнопка тестирования
Рисунок 5. Кнопка «Тест»

Чтобы получить доступ к проверочным тестам, нажмите кнопку «Тест» рядом с вашим мультимедийным приложением.

штат MCT

Государство, контролирующее СМИ
Рисунок 6. Состояние управления мультимедиа

В следующем представлении показана подробная информация о MediaController MCT, например PlaybackState , метаданные и очередь. В правом верхнем углу панели инструментов расположены две кнопки. Кнопка слева переключает между анализируемыми и форматированными журналами. Кнопка справа обновляет представление для отображения самой актуальной информации.

Выбор теста

Страница выбора теста
Рисунок 7. Страница выбора теста

Проведя пальцем влево, вы перейдете к представлению проверочных тестов, где вы можете увидеть прокручиваемый список доступных тестов. Если в тесте используется запрос, например, в тесте воспроизведения из поиска, показанном на рис. 7, имеется текстовое поле для ввода строки запроса.

MCT включает тесты для следующих действий с мультимедиа, и в проект постоянно добавляются новые тесты:

  • Играть
  • Воспроизвести из поиска
  • Воспроизведение с идентификатора носителя
  • Воспроизвести из URI
  • Пауза
  • Останавливаться
  • Перейти к следующему
  • Перейти к предыдущему
  • Перейти к элементу очереди
  • искать

Результаты испытаний

Успешный результат теста
Рисунок 8. Успешный результат теста

Область результатов в нижней части представления изначально пуста. Он покажет результаты при запуске теста. Например, чтобы запустить тест воспроизведения из поиска, введите поисковый запрос в текстовое поле и нажмите « Выполнить тест» . На следующем снимке экрана показан успешный результат теста.

Тестирование приложения Android TV

Когда вы запускаете MCT на Android TV, вы видите список установленных мультимедийных приложений. Обратите внимание, что приложение появится в этом списке только в том случае, если оно реализует службу медиабраузера.

Стартовая страница MCT на телевидении

Рисунок 9. Страница запуска MCT на ТВ.

Выбор приложения приведет вас к экрану тестирования, на котором справа отображается список проверочных тестов.

Страница проверочных тестов на ТВ

Рисунок 10. Страница проверочных тестов на ТВ

Когда вы запускаете тест, в левой части экрана отображается информация о выбранном MediaController. Для получения более подробной информации проверьте журналы MCT в Logcat.

Информационная страница теста на телевидении

Рис. 11. Страница информации о тесте на телевизоре

Тесты, требующие запроса, отмечены значком клавиатуры. Нажатие на один из этих тестов открывает поле ввода для запроса. Нажмите Enter, чтобы запустить тест.

Чтобы упростить ввод текста, вы также можете использовать команду adb :

adb shell input text your-query

Вы можете использовать «%s», чтобы добавить пробел между словами. Например, следующая команда добавляет текст «привет, мир» в поле ввода.

adb shell input text hello%sworld

Создание теста

Вы можете отправить запрос на включение с дополнительными тестами, которые вы считаете полезными. Чтобы узнать, как создавать новые тесты, посетите MCT GitHub Wiki и ознакомьтесь с инструкциями по проверочному тесту .

Пожалуйста, ознакомьтесь с инструкциями по вкладу .

Дополнительные ресурсы

MCT предназначен для использования в сочетании с приложениями, реализующими мультимедийные API. Пример такого приложения см. в универсальном музыкальном проигрывателе Android .

Исправления ошибок и улучшения всегда приветствуются. Пожалуйста, ознакомьтесь с инструкциями по вкладу .