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

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

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

Требования

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

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

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

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

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

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

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

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

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

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

В зависимости от ввода данных пользователем в системном интерфейсе, 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. Параметр 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» , чтобы запустить тесты Android CTS для HDMI CEC.