Google Cast для аудиоустройств поддерживает только воспроизведение аудио. В этом руководстве описывается, как оптимизировать приложения Cast для аудиоустройств и воспользоваться преимуществами снижения требований к памяти, ЦП и пропускной способности сети.
Приложение, поддерживающее Google Cast для аудио, должно учитывать следующее:
- Google Cast для аудиоустройств не отображает видео или графику. Однако многие аудиоустройства имеют дисплей для отображения метаданных, таких как состояние воспроизведения (воспроизведение или пауза) и прогресс. Ваше приложение не должно отображать такую важную пользовательскую информацию только на приемнике; важная информация и большая часть пользовательского интерфейса должны отображаться на отправителе.
- Для правильной работы приложений Web Receiver Google Cast для аудиоустройств должен отображать графику, даже если она не отображается. Поскольку устройства могут не поддерживать графические операции с аппаратным ускорением, приложениям-получателям следует избегать использования операций с интенсивным использованием графики, таких как цветовые градиенты, вращение, альфа-смешивание и перерисовка больших объектов, таких как индикаторы выполнения, чаще одного раза в секунду.
- Google Cast для аудиоустройств поддерживает только содержимое, защищенное Widevine для управления цифровыми правами (DRM).
- Для большинства Google Cast для аудиоустройств приложение-отправитель управляет полным диапазоном громкости устройства (например, динамика), а не только громкостью источника звука, поступающего на телевизор, как в случае с устройством Chromecast.
- В дополнение к управлению воспроизведением с помощью устройства-отправителя (например, телефона) приложение может обеспечивать управление воспроизведением с помощью собственных контроллеров устройства, таких как пульт дистанционного управления, кнопки на устройстве или внешнее удаленное приложение.
- Google Cast для аудиоустройства может поддерживать отображение метаданных контента с помощью небольшого ЖК-экрана, выхода HDMI (для звуковых панелей или аудио-видеоресиверов) или внешнего удаленного приложения в зависимости от пользовательского интерфейса конкретного устройства.
Разработка
Первым шагом в разработке приложения Cast для поддержки Google Cast для аудио является разработка приложения Cast для аудио-видео и обеспечение его работы на Chromecast. В этом документе предполагается, что вы разработали и протестировали такое приложение.
Приложение может поддерживать как аудио-видео, так и только аудиоустройства. Он должен знать, когда он выполняет приведение к одному или другому, и принимать меры для обеспечения наилучшего взаимодействия с пользователем в данном сценарии.
Например, двойные видео- и аудиоприложения (такие как приложения для воспроизведения локальных файлов или файлов NAS) должны разрешать трансляцию на аудиоустройства, чтобы поддерживать воспроизведение аудиофайлов, но приложение не должно позволять пользователю отправлять видеофайлы на аудиоустройства. устройство. Приложение может использовать API возможностей устройства для отправителей , описанные ниже, чтобы определить содержимое, подходящее для устройства.
Чтобы поддерживать Google Cast для аудио, ваше приложение должно выполнять следующие действия:
Поддержка только аудио: потоковая передача музыки и аудиофайлов, радио и т. д. Медиафайлы, передаваемые в приложение Web Receiver, не должны быть видеопотоком. Кроме того, избегайте потоковой передачи графики и изображений, чтобы сократить время запуска приложений и использование памяти. См. рекомендации по использованию памяти ниже.
Запустите, как и ожидалось, на устройстве Cast for audio, а также на обычном Chromecast.
Возможности устройства
Ваше приложение может узнать, работает ли оно на аудиоустройстве, благодаря API-интерфейсам возможностей устройства, доступным на самом устройстве или через API-интерфейсы отправителя или получателя.
HTTP-заголовок устройства
HTTP-заголовок CAST-DEVICE-CAPABILITIES
, предоставленный устройством Cast во время запуска приложения, описывает возможности устройства. Устройство отправляет запрос с этим заголовком на сервер, на котором размещено приложение Web Receiver. Заголовок для аудиоустройства описывает возможности устройства с CAST-DEVICE-CAPABILITIES: {"display_supported":false}
.
Когда ваш сервер получает запрос от устройства, вы можете использовать информацию в этом заголовке, чтобы перенаправить запрос в приложение Web Receiver, оптимизированное для аудиоустройств.
API веб-приемника
Вы можете получить тот же объект возможностей устройства, вызвав CastReceiverManager.getDeviceCapabilities()
при загрузке приложения Web Receiver.
Дополнительные сведения см. в разделе Возможности устройства .
API отправителя
Каждый из API-интерфейсов отправителя Cast также содержит информацию о возможностях устройства. Это позволяет вашему приложению-отправителю определять, какой тип мультимедиа отправлять получателю. Если ваше приложение поддерживает и аудио, и видео, оно может не отправлять видеоконтент на аудиоустройства. Кроме того, ваше приложение может управлять громкостью с помощью метода, наиболее подходящего для устройства, как описано в Контрольном списке проектирования . См. следующие API возможностей устройства для отправителей:
- Android: CastDevice.hasCapabilities
- iOS: возможности устройства
- Chrome: chrome.cast.Capability
Рекомендации по использованию памяти
Приложения Web Receiver, работающие на аудиоустройствах, должны управлять использованием памяти следующим образом:
- Избегайте загрузки или использования каких-либо изображений или графических ресурсов, чтобы уменьшить объем памяти и сократить время до начала воспроизведения.
- При использовании Media Source Extensions (MSE) приложения должны ограничивать буфер потока до 2 МБ. При использовании библиотеки медиаплеера (MPL) размер буфера потока приложения уже определен MPL.
- При использовании HTMLMediaElement размер буфера потока приложения определяется Chrome на основе скорости потока. Ограничьте битрейт аудио до 2 мегабит в секунду, что поддерживает все кодеки, описанные в разделе « Поддерживаемые носители » (до 48 кГц/16 бит).
Контроль громкости
Для большинства Google Cast для аудиоустройств приложение-отправитель управляет полным диапазоном громкости устройства, а не только входной громкостью аудиоисточника, как в случае с устройством Chromecast. Это означает, что шаг изменения громкости должен быть меньше для аудиоприложений. См. следующие документы для рекомендаций по предоставлению регулятора громкости в вашем приложении:
- Регуляторы громкости отправителя в контрольном списке дизайна
- Объем отправителя Android
- Объем отправителя iOS
- Объем веб-отправителя
Элементы управления устройством
Google Cast для аудиоустройств может иметь собственные элементы управления воспроизведением (например, кнопки, пульты). Они используют сообщения воспроизведения мультимедиа, определенные для пространства имен urn:x-cast:com.google.cast.media
, как описано в разделе Сообщения воспроизведения мультимедиа , для управления воспроизведением в приложении-приемнике. Ваше приложение-приемник должно поддерживать эти сообщения воспроизведения мультимедиа, чтобы поддерживать элементы управления воспроизведением устройства.
Кроме того, ваше приложение-отправитель должно поддерживать сообщения от получателя к отправителю , чтобы, если пользователь меняет состояние мультимедиа с помощью элементов управления устройством, ваше приложение-отправитель могло получать сообщение о состоянии от получателя и соответствующим образом обновлять пользовательский интерфейс.
Дисплей устройства
Google Cast для аудиоустройства может иметь ЖК-экран на устройстве или управляющее приложение для конкретного устройства, которое отображает метаданные мультимедиа. Ваше приложение-приемник должно предоставлять эти метаданные для всех звуковых дорожек и обеспечивать их синхронизацию с воспроизводимым в данный момент содержимым, чтобы обеспечить правильное отображение метаданных на дисплее. Если приложение использует пользовательские метаданные, оно также должно предоставлять стандартные метаданные аудио (название дорожки, имя исполнителя, название альбома и т. д.), как описано для каждой платформы ниже.
Получатель получает метаданные от отправителя при загрузке мультимедиа. В приложении-отправителе с командой для загрузки мультимедиа на приемник необходимо указать поля, описанные ниже, чтобы метаданные отображались на устройстве Google Cast для аудио. Используйте следующие API:
Android
MediaMetadata
сMEDIA_TYPE_MUSIC_TRACK
и:iOS
GCKMediaMetadata
сGCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
и:Chrome
MediaInfo
сMusicTrackMediaMetadata
и:
Если приложение Cast управляет очередью мультимедиа на получателе или в облаке, веб-приемник должен транслировать любые обновления статуса мультимедиа, используя пространство имен urn:x-cast:com.google.cast.media
, чтобы все отправители были синхронизированы.
Регистрация
Вы должны зарегистрировать свое устройство Google Cast для аудио для тестирования и зарегистрировать свое приложение для поддержки Google Cast для аудиоустройств с помощью консоли разработчика Google Cast SDK .
- Дополнительные сведения о регистрации устройств см. в разделе Устройства .
- Вы должны установить флажок « Поддерживает трансляцию только на аудиоустройства » при регистрации приложения, чтобы ваше приложение могло обнаруживать Google Cast для аудиоустройств. См. Зарегистрируйте свое приложение .
Для неопубликованных приложений, например тех, которые использовались для тестирования, необходимо также выбрать параметр поддержки устройств только для аудио, чтобы приложение могло обнаруживать устройства только для аудио.
Google Cast для аудио 2.0
Google Cast for Audio (GC4A) 2.0 — это аудиоплатформа Cast следующего поколения, предназначенная для устройств с малым объемом памяти, чтобы расширить экосистему устройств, которые могут транслировать ваш контент.
Важно, чтобы разработчики аудиоприложений тестировали свои приложения на GC4A 2.0. Вы можете протестировать приложение Cast для GC4A 2.0 на серийном динамике Bose (например, Bose Smart Speaker 500 ).
Напишите gc4a-support-external@google.com , если вам нужна помощь в настройке для тестирования или вы не можете использовать динамик Bose. Если вы хотите отлаживать свое приложение, Google рекомендует использовать Cast Debug Logger .