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

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

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

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения о создании приложения для воспроизведения мультимедиа см. в разделе Создание базового медиаплеера с помощью ExoPlayer .

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

Котлин

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

Ява

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 Cast .

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

  • Находите контент на разных платформах , предлагая ленту медиа-действий или интегрируя Watch Next.

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

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

Создайте структуру ввода ТВ

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

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