Аудиоустройства

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

Приложение, поддерживающее Google Cast для аудио, должно учитывать следующее:

  • Google Cast для аудиоустройств не отображает видео или графику. Однако многие аудиоустройства имеют дисплей для отображения метаданных, таких как состояние воспроизведения (воспроизведение или пауза) и прогресс. Ваше приложение не должно отображать такую ​​важную пользовательскую информацию только на приемнике; критическая информация и большая часть пользовательского интерфейса должны отображаться на отправителе.
  • Для правильной работы приложений веб-приемника Google Cast для аудиоустройств по-прежнему должен отображать графику, даже если она не отображается. Поскольку устройства могут не поддерживать графические операции с аппаратным ускорением, приложениям-получателям следует избегать использования операций с интенсивным использованием графики, таких как цветовые градиенты, вращение, альфа-смешение и перерисовка больших объектов, таких как индикаторы выполнения, более одного раза в секунду.
  • Google Cast для аудиоустройств поддерживает только контент, защищенный Widevine for Digital Rights Management (DRM).
  • Для большинства Google Cast для аудиоустройств приложение-отправитель контролирует весь диапазон громкости устройства (например, динамика), а не только громкость источника звука, поступающего на телевизор, как в случае с устройством Chromecast.
  • Помимо управления воспроизведением с помощью устройства-отправителя (например, телефона), приложению может потребоваться обеспечить управление воспроизведением с помощью собственных контроллеров устройства, таких как пульт дистанционного управления, кнопки на устройстве или внешнее удаленное приложение.
  • Google Cast для аудиоустройства может поддерживать отображение метаданных контента с помощью небольшого ЖК-экрана, выхода HDMI (для звуковых панелей или аудио-видеоресиверов) или внешнего удаленного приложения, в зависимости от пользовательского интерфейса конкретного устройства.

Разработка

Первым шагом в разработке приложения Cast для поддержки Google Cast для аудио является разработка приложения Cast для аудио и видео и обеспечение его работы на Chromecast. В этом документе предполагается, что вы разработали и протестировали такое приложение.

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

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

Чтобы поддерживать Google Cast для аудио, ваше приложение должно выполнять следующие действия:

  • Поддержка только аудио: потоковая передача музыки и аудиофайлов, радио и т. д. Мультимедиа, передаваемое в приложение Web Receiver, не должно быть видеопотоком. Кроме того, избегайте потоковой передачи графики и изображений, чтобы сократить время запуска приложений и использование памяти. См. рекомендации по использованию памяти ниже.

  • Запустите, как ожидалось, на аудиоустройстве Cast для аудио, а также на обычном Chromecast.

Возможности устройства

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

HTTP-заголовок устройства

HTTP-заголовок CAST-DEVICE-CAPABILITIES , предоставляемый устройством Cast во время запуска приложения, описывает возможности устройства. Устройство отправляет запрос с этим заголовком на сервер, на котором размещено приложение веб-приемника. Заголовок устройства только для звука описывает возможности устройства с помощью CAST-DEVICE-CAPABILITIES: {"display_supported":false} .

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

API веб-приемника

Вы можете получить тот же объект возможностей устройства, вызвав CastReceiverManager.getDeviceCapabilities() при загрузке приложения веб-приемника.

Дополнительные сведения см. в разделе Возможности устройства .

API-интерфейсы отправителя

Каждый из API-интерфейсов Cast-отправителя также содержит информацию о возможностях устройства. Это позволяет вашему приложению-отправителю определить, какой тип мультимедиа отправлять получателю. Если ваше приложение поддерживает как аудио, так и видео, оно может избежать отправки видеоконтента на устройства, поддерживающие только аудио. Кроме того, ваше приложение может управлять громкостью наиболее подходящим для устройства способом, как описано в Контрольном списке проектирования . См. следующие API-интерфейсы возможностей устройства для отправителей:

Рекомендации по использованию памяти

Приложения веб-приемника, работающие на аудиоустройствах, должны управлять использованием памяти следующим образом:

  • Не загружайте и не используйте какие-либо изображения или графические ресурсы, чтобы уменьшить объем памяти и сократить время до начала воспроизведения.
  • При использовании Media Source Extensions (MSE) приложения должны ограничивать размер буфера потока до 2 МБ. При использовании библиотеки медиаплеера (MPL) размер буфера потока приложения уже определен MPL.
  • При использовании HTMLMediaElement размер буфера потока приложения определяется Chrome на основе скорости потока. Ограничьте битрейт звука до 2 мегабит в секунду, что поддерживает все кодеки, описанные в разделе «Поддерживаемые носители» (до 48 кГц/16 бит).

Контроль громкости

Для большинства Google Cast для аудиоустройств приложение-отправитель контролирует весь диапазон громкости устройства, а не только входную громкость источника звука, как в случае с устройством Chromecast. Это означает, что шаг изменения громкости должен быть меньшим для приложений, предназначенных только для аудио. Инструкции по обеспечению регулировки громкости в вашем приложении см. в следующих документах:

Элементы управления устройством

Google Cast для аудиоустройств может иметь собственные элементы управления воспроизведением (например, кнопки, пульты дистанционного управления). Они используют сообщения воспроизведения мультимедиа, определенные для пространства имен urn:x-cast:com.google.cast.media , как описано в разделе «Сообщения воспроизведения мультимедиа» , для управления воспроизведением в приложении-приемнике. Приложение-приемник должно поддерживать эти сообщения о воспроизведении мультимедиа, чтобы поддерживать элементы управления воспроизведением устройства.

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

Дисплей устройства

Google Cast для аудиоустройства может иметь ЖК-экран на устройстве или приложение управления для конкретного устройства, которое отображает метаданные мультимедиа. Ваше приложение-приемник должно предоставить эти метаданные для всех аудиодорожек и обеспечить их синхронизацию с воспроизводимым в данный момент контентом, чтобы обеспечить правильное отображение метаданных на дисплее. Если приложение использует пользовательские метаданные, оно также должно предоставить стандартные метаданные аудио (название трека, имя исполнителя, название альбома и т. д.), как описано для каждой платформы ниже.

Получатель получает метаданные от отправителя при загрузке носителя. В приложении-отправителе с помощью команды загрузки мультимедиа в получатель необходимо указать поля, описанные ниже, чтобы метаданные отображались на Google Cast для аудиоустройства. Используйте следующие API:

Если приложение 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 Динамик 500 ).

Если вам нужна помощь в настройке для тестирования или вы не можете использовать динамик Bose, свяжитесь с нами по адресу gc4a-support-external@google.com . Если вы хотите отладить свое приложение, Google рекомендует использовать Cast Debug Logger .