Android предлагает богатый пользовательский интерфейс, оптимизированный для приложений, работающих на устройствах с большим экраном, таких как телевизоры высокой четкости. Вы можете расширить аудиторию своего приложения, разработав его для Android TV. В этом документе рассказывается, как сделать это эффективно.
Создание приложений для телевизоров
Приложения для телевизоров имеют ту же структуру, что и приложения для телефонов и планшетов. Это означает, что вы можете создавать новые приложения для телевизоров на основе того, что вы уже знаете о создании приложений для Android, или расширять существующие приложения для работы на телевизорах.
Однако модель взаимодействия с пользователем на телевизоре существенно отличается от модели взаимодействия на телефоне или планшете. Чтобы ваше приложение было успешным на телевизорах, необходимо разработать новые макеты, которые будут понятны с расстояния 3 метров, и обеспечить навигацию, которая работает только с помощью крестовины и кнопки выбора.
Дополнительную информацию о том, как работать с аппаратными контроллерами телевизоров, создавать макеты и настраивать навигацию, вы найдете в статье Создание приложений для телевизоров.
Используйте Media3 ExoPlayer
Jetpack Media3 предоставляет интерфейс Player, который определяет основные функции, такие как возможность воспроизведения, паузы, поиска и отображения информации о треке. ExoPlayer – это реализация этого интерфейса по умолчанию в Media3.
По сравнению с MediaPlayer API в Android, ExoPlayer предлагает дополнительные удобства, такие как поддержка нескольких протоколов потоковой передачи, стандартные средства визуализации аудио и видео, а также компоненты, которые обрабатывают буферизацию медиаконтента.
ExoPlayer можно настраивать и расширять, а также обновлять через Google Play. Подробнее о Media3 ExoPlayer…
Используйте Media3 MediaSession
Сеансы мультимедиа предоставляют системе универсальный способ взаимодействия с аудио- или видеопроигрывателем вашего приложения. Одна из основных характеристик, которая отличает Media3 от предыдущих медиа-API, заключается в том, что больше нет необходимости в коннекторах между компонентами.
Новый класс MediaSession принимает любой класс, реализующий интерфейс Player. ExoPlayer и MediaController – это классы, которые реализуют этот интерфейс. Это упрощает взаимодействие между компонентами.
Подробнее об интерфейсе проигрывателя…
Подробнее о том, как создать базовый медиапроигрыватель с помощью ExoPlayer…
Чтобы сделать приложение для мультимедиа максимально удобным для конечных пользователей, необходимо реализовать MediaSession. Для этого инициализируйте Player и передайте его в MediaSession.Builder, как показано ниже.
Kotlin
val player = ExoPlayer.Builder(context).build() val mediaSession = MediaSession.Builder(context, player).build()
Java
ExoPlayer player = new ExoPlayer.Builder(context).build(); MediaSession mediaSession = new MediaSession.Builder(context, player).build();
Автоматическая обработка состояния
Библиотека Media3 автоматически обновляет сеанс мультимедиа, используя состояние проигрывателя. Поэтому вам не нужно вручную сопоставлять игрока с сеансом. Это позволяет пользователям всегда видеть актуальную информацию о воспроизводимом контенте, в том числе на карточке "Что сейчас играет?".
Управление воспроизведением и его реклама
В Media3 проигрывателем по умолчанию является класс ExoPlayer, который реализует интерфейс Player. Подключение сеанса мультимедиа к проигрывателю позволяет приложению рекламировать воспроизведение мультимедиа извне и получать команды воспроизведения из внешних источников. Сеанс мультимедиа делегирует эти команды проигрывателю мультимедийного приложения.
Сеанс воспроизведения – это ключ к управлению воспроизведением. Она позволяет направлять команды из внешних источников в проигрыватель, который воспроизводит медиаконтент. Внешние клиенты могут использовать контроллер мультимедиа для отправки команд воспроизведения в ваше мультимедийное приложение. Они принимаются вашим сеансом мультимедиа, который в конечном итоге делегирует команды медиаплееру.
Дополнительную информацию о воспроизведении, например о том, как настроить поведение команд воспроизведения, можно найти в статье Управление воспроизведением и его реклама с помощью MediaSession.
Как избежать сбоев в работе приложения
Используя MediaSession, вы можете избежать ненужных сбоев, таких как:
Неожиданное и непрерывное воспроизведение при выключении телевизора или переключении входов. Кроме того, это приводит к высокому потреблению энергии аппаратным обеспечением телевизора. С помощью
MediaSessionприложение может сообщать платформе, что воспроизводит медиаконтент, а платформа – сообщать приложению, что воспроизведение можно остановить.Воспроизведение музыки неожиданно прекращается, когда вы переключаетесь на другое приложение или выключаете экран телевизора. Использование API
MediaSessionпозволяет продолжить воспроизведение в фоновой службе.Ограниченное взаимодействие с контентом, которое мешает пользователям управлять воспроизведением. Например, возвращаться в приложение, если оно воспроизводит музыку в фоновом режиме, или поддерживать голосовые команды. С помощью
MediaSessionв вашем приложении пользователи могут использовать голосовые команды, чтобы искать и пропускать песни или эпизоды.
Дополнительные соображения
При адаптации мультимедийного приложения для Android TV необходимо учитывать специальные возможности, способы повышения вовлеченности, поиск контента, а также создание игр и сервисов ввода для телевизоров.
Специальные возможности на телевизорах
Хотя вспомогательные технологии могут помочь пользователям со слабым зрением, важно поддерживать специальные возможности при поиске контента в ТВ-приложениях.
Например, уделите особое внимание навигации и правильной маркировке элементов, а также убедитесь, что ТВ-приложения совместимы со специальными возможностями, такими как TalkBack. Эти шаги могут значительно улучшить опыт для пользователей с нарушениями зрения.
Первый шаг к улучшению доступности – это осведомленность. Дополнительную информацию о масштабировании текста, раскладках клавиатуры и аудиосопровождении можно найти в ресурсах по специальным возможностям.
Рекомендации по повышению вовлеченности в Google TV
Все приложения, созданные для Android TV, работают на устройствах с Google TV. Чтобы обеспечить максимальное удобство для пользователей Google TV, рекомендуем следовать приведенным ниже советам.
Вам нужно использовать MediaSession, чтобы обеспечить универсальный способ взаимодействия с аудио- или видеопроигрывателем. Подробнее о том, как это сделать, рассказывается в статье Как использовать Media3 MediaSession.
Прежде всего, ваше приложение должно поддерживать Google Cast. С его помощью можно расширить возможности приложений для Android, iOS и приложений Chrome, чтобы транслировать аудио и видео на устройства Android TV, Chromecast и устройства с Ассистентом. Дополнительную информацию можно найти в документации по Google Cast.
Вы также можете помочь пользователям:
Помогите пользователям находить контент на разных платформах. Для этого добавьте фид действий с медиаконтентом или интегрируйте раздел "Смотреть дальше".
Используйте голосовое управление и повышайте вовлеченность пользователей. Для этого поддерживайте связывание аккаунтов и синхронизацию прав, предлагайте голосовое управление трансляцией и включите Cast Connect.
Упростите оплату, интегрировав Google Play Платежи и предоставив пользователям удобные подписки.
Создание фреймворка ТВ-входа
Просмотр телепередач в прямом эфире и другого непрерывного контента на основе каналов – важная часть работы с телевизором. Пользователи привыкли выбирать и смотреть телепередачи, переключая каналы. Фреймворк TV Input Framework создает каналы для публикации видео- или музыкального контента в телепрограмме.
Фреймворк TV Input Framework предоставляет единый метод получения и воспроизведения видеоконтента из аппаратных источников, таких как порты HDMI и встроенные тюнеры, и программных источников, таких как видео, транслируемое через интернет. Подробнее о том, как создавать сервисы ввода для ТВ…