Динамический режим звуковой панели

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

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

Требования

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

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

Для поддержки DSM устройство STB или OTT должно соответствовать следующим требованиям:

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

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

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

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

В качестве наилучшей практики мы рекомендуем использовать меню «Дисплей и звук» в качестве места для пользовательских настроек, позволяющих включать или отключать ARC , как показано в реализации SysUI .

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

Реализация функциональности звуковой панели 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

Для поддержки функции динамической звуковой панели OEM-производители должны убедиться, что оборудование поддерживает эту функцию. 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. Параметр ARC недоступен и отключен, если HDMI-CEC отключён, как показано на рисунке 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 с включенной настройкой звуковой панели, чтобы проверить вашу реализацию.

Информацию о тестировании CEC CTS для устройств Android TV см. в разделе «Тестирование CEC CTS для устройств Android TV» для запуска тестов Android CTS для HDMI CEC.