Благодаря поддержке платформы Android 14 производители оригинального оборудования могут настраивать приставки (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 или обратный аудиоканал (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-производители должны настроить устройство и реализовать системный пользовательский интерфейс для предоставления необходимого интерфейса для ввода данных пользователем.
Реализация устройства
Для поддержки функции звуковой панели на устройстве:
- Откройте устройство воспроизведения на Android 14.
- Реализуйте порт HDMI ARC в драйвере.
Оставьте значения RRO
config_cecSoundbarModeEnabled_default
иconfig_cecSoundbarModeDisabled_default
без изменений вconfig.xml
, чтобы функция оставалась отключенной по умолчанию.Убедитесь, что устройство имеет встроенные или подключенные динамики для воспроизведения звука, и отредактируйте конфигурацию политики звука .
Установите для системного свойства
persist.sys.hdmi.property_arc_support
значениеtrue
, чтобы указать, что ARC поддерживается.Откройте настройку переключения режима звуковой панели в системном интерфейсе .
Для отладки используйте следующую команду
adb
, чтобы включить или выключить функцию звуковой панели (1
для включения и0
для выключения):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Реализация SysUI
В этом разделе описывается рекомендуемый, фиктивный поток пользовательского интерфейса для включения и выключения DSM. Настройка аудиовыхода находится в меню «Дисплей и звук» , как показано на рисунке 1:
Рисунок 1. Настройка аудиовыхода в меню «Дисплей и звук».
Для работы DSM необходимо включить настройку Включить HDMI-CEC . Настройка ARC может быть включена только при включенном HDMI-CEC. Настройка ARC недоступна и отключена, если HDMI-CEC отключен, как показано на рисунке 2. В следующем потоке пользовательского интерфейса, когда пользователь отключает настройку Включить HDMI-CEC в меню Дисплей и звук и выбирает Домашний динамик , настройка ARC отключается. Пользователь может включить настройку Воспроизведение звука телевизора , включив Включить HDMI-CEC .
Рисунок 2. Пользовательский интерфейс для отключенной опции ARC.
Когда настройка HDMI-CEC включена, пользователь может использовать настройку ARC в разделе Аудиовыход для включения и выключения DSM. Чтобы включить DSM, пользователь следует потоку пользовательского интерфейса на рисунке 3. В следующем потоке пользовательского интерфейса для включения режима звуковой панели пользователь выбирает Домашний динамик , а затем выбирает и подтверждает настройку ARC . Чтобы выключить DSM, пользователь выключает настройку 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
с включенной настройкой звуковой панели, чтобы проверить вашу реализацию.
Чтобы запустить тесты Android CTS для HDMI CEC, ознакомьтесь с разделом «Тестирование CEC CTS для устройств Android TV» .