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