Расширьте свое медиа-приложение на Android TV

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

Создавайте приложения для телевидения

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

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

Для получения дополнительной информации о таких аспектах, как работа с аппаратными контроллерами телевизора, создание схем расположения элементов на экране телевизора и разработка навигации для телевизора, см. раздел «Создание приложений для телевизора» .

Используйте Media3 ExoPlayer

Jetpack Media3 предоставляет интерфейс плеера, определяющий основные функции, такие как воспроизведение, пауза, перемотка и отображение информации о треке. ExoPlayer — это реализация этого интерфейса по умолчанию в Media3.

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

Вы можете настраивать и расширять ExoPlayer, а также обновлять его через обновления приложений в Play Store. Для получения дополнительной информации см. Media3 ExoPlayer .

Используйте Media3 MediaSession

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

Новый класс MediaSession принимает любой класс, реализующий интерфейс Player. Классы ExoPlayer и MediaController являются классами, реализующими этот интерфейс. Это значительно упрощает взаимодействие между компонентами. Для получения дополнительной информации см. раздел «Интерфейс Player» .

Для получения дополнительной информации о создании приложения для воспроизведения мультимедиа см. раздел «Создание простого медиаплеера с помощью ExoPlayer» .

Для обеспечения наилучшего пользовательского опыта в вашем медиаприложении необходимо реализовать MediaSession . Для этого инициализируйте Player и передайте его в MediaSession.Builder следующим образом:

Котлин

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 на телевизорах необходимо учитывать вопросы доступности, способы повышения вовлеченности пользователей, обеспечение возможности поиска контента, а также разработку игр и сервисов для ввода данных с телевизора.

доступность ТВ

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

Например, следует уделять особое внимание предоставлению навигационных подсказок и правильной маркировке элементов, а также обеспечивать корректную работу телевизионных приложений с функциями доступности, такими как TalkBack. Эти шаги могут значительно улучшить пользовательский опыт для людей с нарушениями зрения.

Первый шаг к повышению доступности — это повышение осведомленности. Для получения дополнительной информации о масштабировании текста, раскладках клавиатуры и аудиоописаниях см. ресурсы по доступности .

Лучшие практики для повышения вовлеченности на Google TV

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

Для обеспечения универсального способа взаимодействия с аудио- или видеоплеером необходимо использовать MediaSession . Дополнительную информацию о реализации см. в разделе «Использование Media3 MediaSession» .

В качестве базового требования ваше приложение должно поддерживать Google Cast. Это позволяет расширить функциональность ваших приложений для Android, iOS и Chrome, обеспечивая потоковую передачу аудио и видео на телевизоры Android, а также на устройства Chromecast и устройства Google Assistant. Для получения дополнительной информации см. документацию Google Cast .

Вы также можете помочь пользователям:

  • Находите контент на разных платформах , предлагая ленту действий с медиаконтентом или интегрируя функцию «Смотреть дальше».

  • Воспользуйтесь преимуществами голосового управления и взаимодействия , поддерживая привязку учетных записей и синхронизацию прав доступа, предлагая трансляцию голоса и активируя Cast Connect.

  • Упростите оплату , интегрировав платежную систему Google Play и обеспечив удобные подписки.

Создайте структуру ввода для телевизора.

Просмотр телепередач в прямом эфире и другого контента, транслируемого по каналам, является важной частью телевизионного опыта. Пользователи привыкли выбирать и смотреть передачи по телевизору, переключая каналы. Платформа TV Input Framework создает каналы для публикации видео- или музыкального контента в телепрограмме.

Платформа TV Input Framework предоставляет единый метод для приема и воспроизведения видеоконтента в реальном времени как от аппаратных источников, таких как порты HDMI и встроенные тюнеры, так и от программных источников, таких как видео, передаваемое через Интернет. Для получения дополнительной информации см. раздел «Создание служб ввода для ТВ» .