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 и встроенные тюнеры, так и от программных источников, таких как видео, передаваемое через Интернет. Для получения дополнительной информации см. раздел «Создание служб ввода для ТВ» .