Благодаря поддержке фреймворка 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
Чтобы поддерживать функцию динамического саундбара, производители устройств должны убедиться, что она поддерживается на уровне аппаратного обеспечения. Производители оригинального оборудования должны настроить устройство и реализовать системный интерфейс, чтобы обеспечить необходимый интерфейс для ввода данных пользователем.
Реализация на устройстве
Чтобы поддерживать функцию саундбара на устройстве:
- Откройте список устройств воспроизведения на устройстве с 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. Если HDMI-CEC отключен, то настройка ARC недоступна и отключена, как показано на рисунке 2. В приведенном ниже интерфейсе, когда пользователь отключает параметр Включить HDMI-CEC в меню Экран и звук и выбирает Домашняя колонка, параметр ARC отключается. Пользователь может включить параметр Воспроизводить звук с телевизора, активировав параметр Включить HDMI-CEC.
Рисунок 2. Интерфейс с отключенным ARC.
Если настройка HDMI-CEC включена, пользователь может использовать настройку ARC в разделе Аудиовыход, чтобы включать и отключать DSM. Чтобы включить DSM, пользователь выполняет действия, показанные на рисунке 3. Чтобы включить режим саундбара, пользователь выбирает Домашняя колонка, а затем выбирает и подтверждает настройку ARC. Чтобы отключить DSM, пользователь отключает параметр 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.