Динамический режим саундбара

Благодаря поддержке фреймворка Android 14 производители оригинального оборудования могут настраивать телеприставки и OTT-устройства со встроенными или подключенными колонками так, чтобы они работали как саундбары для подключенных устройств. В Android 14 режим динамического саундбара (DSM) поддерживает атрибуты HDMI CEC для саундбаров, такие как реверсивный звуковой канал (ARC) и управление системным звуком.

Эта функция предназначена только для устройств воспроизведения Android TV CEC.

Требования

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

Требования к устройствам

Чтобы поддерживать динамическую вставку объявлений, телеприставка или устройство OTT должны соответствовать следующим требованиям:

  • На устройстве должна быть установлена ОС Android 14.
  • Если функция DSM включена, устройство должно работать как саундбар, следуя спецификациям HDMI CEC, например ARC.
  • Устройство должно поддерживать воспроизведение звука через встроенные или подключенные динамики.
  • Если устройство не является активным источником, все мультимедиа на нем должны быть приостановлены, чтобы ограничить энергопотребление.

Требования к системному интерфейсу

Чтобы поддерживать DSM, производители устройств должны соблюдать следующие требования при разработке системного интерфейса:

  • В интерфейсе должно быть указано ARC или Audio Return Channel (ARC).
  • В интерфейсе должно быть указано, что для установления подключения ARC устройство необходимо подключить к порту ARC телевизора.
  • В интерфейсе должно быть указано, что функция может работать некорректно, если к сети HDMI подключен другой саундбар или аудиовидеоресивер.
  • В интерфейсе должно быть указано, что при переключении настройки экран может мерцать.
  • Если у устройства нет встроенных динамиков, DSM по умолчанию должна быть отключена.

Рекомендуем разместить настройку для включения и отключения ARC в меню Экран и звук, как показано в разделе Реализация системного интерфейса.

Реализация фреймворка

Реализация функций саундбара CEC и динамического выделения логического адреса 5 существует в фреймворке Android. Фреймворк выделяет логический адрес, когда включена настройка саундбара, чтобы устройство динамически становилось саундбаром. Если параметр саундбара отключен, фреймворк освобождает логический адрес.

На основе введенных пользователем данных в системном интерфейсе HdmiControlManager устанавливает для CEC_SETTING_NAME_SOUNDBAR_MODE значение SOUNDBAR_MODE_ENABLED или SOUNDBAR_MODE_DISABLED. Значением по умолчанию для правила CEC_SETTING_NAME_SOUNDBAR_MODE станет SOUNDBAR_MODE_DISABLED.

HdmiControlService отслеживает изменения в настройке CEC_SETTING_NAME_SOUNDBAR_MODE и выполняет следующие действия:

  • Проверьте, существует ли локальное устройство воспроизведения и поддерживается ли свойство ARC.
  • Чтобы добавить или удалить локальное аудиоустройство, запустите выделение логических адресов.
  • Убедитесь, что состояние настройки сохраняется при горячем подключении устройства.

Ниже приведен пример объявлений для установки и получения статуса режима саундбара.

    /**
     * Name of a setting deciding whether the Soundbar mode feature is enabled.
     * Before exposing this setting make sure the hardware supports it, otherwise, you may
     * experience multiple issues.
     *
     * @see HdmiControlManager#setSoundbarMode(int)
     */
    public static final String CEC_SETTING_NAME_SOUNDBAR_MODE = "soundbar_mode";
    /**
     * Soundbar mode feature enabled.
     */
    public static final int SOUNDBAR_MODE_ENABLED = 1;
    /**
     * Soundbar mode feature disabled.
     */
    public static final int SOUNDBAR_MODE_DISABLED = 0;

   /**
     * Set the status of Soundbar mode feature.
     *
     * This allows to enable/disable Soundbar mode on the playback device.
     * The setting's effect will be available on devices where the hardware supports this feature.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public void setSoundbarMode(@SoundbarMode int value) {
    }

    /**
     * Get the current status of Soundbar mode feature.
     *
     * Reflects whether Soundbar mode is currently enabled on the playback device.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public int getSoundbarMode() {}

Реализация OEM

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

Реализация на устройстве

Чтобы поддерживать функцию саундбара на устройстве:

  1. Откройте список устройств воспроизведения на устройстве с Android 14.
  2. Реализуйте порт HDMI ARC в драйвере.
  3. Оставьте значения RRO config_cecSoundbarModeEnabled_default и config_cecSoundbarModeDisabled_default без изменений в config.xml, чтобы функция оставалась отключенной по умолчанию.

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

  5. Задайте для системного свойства persist.sys.hdmi.property_arc_support значение true, чтобы указать, что ARC поддерживается.

  6. Добавьте в системный интерфейс настройку для переключения режима саундбара.

  7. Для отладки используйте следующую команду adb, чтобы включить или отключить функцию саундбара (1 – включить, 0 – отключить):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

Реализация SysUI

В этом разделе описан рекомендуемый макет интерфейса для включения и отключения DSM. Параметр Аудиовыход находится в меню Экран и звук, как показано на рисунке 1.

dsm_audio_output

Рисунок 1. Настройки аудиовыхода в меню "Экран и звук".

Чтобы использовать DSM, необходимо включить параметр Включить HDMI-CEC. Настройку ARC можно включить, только если включена настройка HDMI-CEC. Если HDMI-CEC отключен, то настройка ARC недоступна и отключена, как показано на рисунке 2. В приведенном ниже интерфейсе, когда пользователь отключает параметр Включить HDMI-CEC в меню Экран и звук и выбирает Домашняя колонка, параметр ARC отключается. Пользователь может включить параметр Воспроизводить звук с телевизора, активировав параметр Включить HDMI-CEC.

dsm_ui_disable_arc

Рисунок 2. Интерфейс с отключенным ARC.

Если настройка HDMI-CEC включена, пользователь может использовать настройку ARC в разделе Аудиовыход, чтобы включать и отключать DSM. Чтобы включить DSM, пользователь выполняет действия, показанные на рисунке 3. Чтобы включить режим саундбара, пользователь выбирает Домашняя колонка, а затем выбирает и подтверждает настройку ARC. Чтобы отключить DSM, пользователь отключает параметр ARC.

dsm_ui_enable_arc

Рисунок 3. Интерфейс для включения DSM.

Проверка

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

Проверка вручную

Чтобы вручную проверить ожидаемое поведение, используйте следующие сценарии:

  • Параметр ARC включен:
    • Телевизор отключает звук.
    • Звук с телевизора передается на динамики устройства.
  • Параметр ARC отключен:
    • Телевизор перестанет передавать звук на устройство.
    • Телевизор начнет воспроизводить аудио.
  • Настройка ARC включена, и устройство подключено к порту телевизора, не поддерживающему ARC.
    • Устройство не воспроизводит звук телевизора.
  • Параметр ARC включен, а логический адрес 5 используется другим устройством до подключения устройства:
    • Устройство работает как обычный проигрыватель, а не как саундбар.
  • Настройка ARC включена, устройство использует логический адрес 5, а к сети подключена другая аудиосистема:
    • Поведение саундбара не изменилось.
  • Настройка ARC включена, логический адрес 5 используется устройством, подключенным к порту без поддержки ARC, а другая аудиосистема подключена к порту с поддержкой ARC:
    • Подключение ARC не установлено со второй аудиосистемой, поскольку она использует незарегистрированный логический адрес.
  • Параметр ARC включен, и устройство подключено к горячей замене:
    • Устройство будет работать так же, как если бы параметр был включен.

Проверка CTS

CtsHdmiCecHostTestCases необходимо передавать, если настройка саундбара отключена. Тест HdmiCecSoundbarModeTest.java в наборе тестов CtsHdmiCecHostTestCases проверяет функции DSM.

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

Чтобы запустить тесты Android CTS для HDMI CEC, ознакомьтесь с инструкциями по тестированию CEC CTS для устройств Android TV.