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

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

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

Требования

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

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

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

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

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

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

  • Метка пользовательского интерфейса должна содержать ссылку на ARC или Audio Return Channel (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>

реализация системного интерфейса

В этом разделе описан рекомендуемый макет пользовательского интерфейса для включения и выключения 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.

Валидация

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

Ручная проверка

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

  • Настройка 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.