Dynamiczny tryb soundbara

Dzięki obsłudze platformy Android 14 dekodery (STB) i urządzenia typu over-the-top (OTT) z wbudowanymi lub podłączonymi głośnikami można skonfigurować jako listwy dźwiękowe dla podłączonych urządzeń. Tryb dynamicznego listwy dźwiękowej (DSM) w systemie Android 14 obsługuje atrybuty sterowania elektroniką konsumencką (CEC) HDMI dla listew dźwiękowych, takie jak kanał zwrotny audio (ARC) i sterowanie dźwiękiem systemu.

Ta funkcja jest przeznaczona wyłącznie dla urządzeń odtwarzających z systemem Android TV CEC.

Wymagania

Aby zastosować funkcję listwy dźwiękowej, producenci OEM muszą spełnić wymagania dotyczące urządzenia i interfejsu użytkownika systemu wymienione w tej sekcji.

Wymagania dotyczące urządzenia

Aby obsługiwać DSM, urządzenie STB/OTT musi spełniać następujące wymagania:

  • Urządzenie musi działać na systemie Android 14.
  • Po włączeniu DSM urządzenie musi zachowywać się jak listwa dźwiękowa zgodnie ze specyfikacjami HDMI CEC, takimi jak ARC.
  • Urządzenie musi mieć możliwość odtwarzania dźwięku na wbudowanych lub podłączonych głośnikach.
  • Gdy urządzenie nie jest aktywnym źródłem, wszystkie multimedia muszą zostać wstrzymane na urządzeniu, ograniczając jego zużycie energii.

Wymagania dotyczące interfejsu użytkownika systemu

Aby móc obsługiwać DSM, producenci OEM muszą podczas projektowania interfejsu użytkownika spełniać następujące wymagania:

  • Etykieta interfejsu użytkownika musi zawierać odniesienie do ARC lub kanału zwrotnego audio (ARC) .
  • Interfejs użytkownika musi poinformować użytkownika o konieczności podłączenia urządzenia do portu ARC telewizora w celu nawiązania połączenia ARC.
  • Interfejs użytkownika musi informować użytkownika, że ​​funkcja może nie działać zgodnie z oczekiwaniami, jeśli do sieci HDMI podłączony jest inny soundbar lub odbiornik audio/wideo (AVR).
  • Interfejs użytkownika musi informować użytkownika, że ​​ekran może migotać podczas przełączania ustawienia.
  • Jeśli urządzenie nie ma wbudowanych głośników, DSM musi być domyślnie wyłączony.

Najlepsza praktyka: Zalecamy użycie menu Wyświetlacz i dźwięk jako lokalizacji ustawień użytkownika umożliwiających włączenie lub wyłączenie ARC , jak pokazano w implementacji SysUI .

Wdrożenie ramowe

Implementacja funkcjonalności soundbara CEC i dynamicznej alokacji adresu logicznego 5 istnieje w środowisku Android. Struktura przydziela adres logiczny, gdy ustawienie listwy dźwiękowej jest włączone, aby urządzenie dynamicznie stało się listwą dźwiękową. Gdy ustawienie listwy dźwiękowej jest wyłączone, struktura zwalnia adres logiczny.

W oparciu o dane wprowadzone przez użytkownika w interfejsie użytkownika systemu, HdmiControlManager ustawia CEC_SETTING_NAME_SOUNDBAR_MODE na SOUNDBAR_MODE_ENABLED lub SOUNDBAR_MODE_DISABLED . Domyślna wartość CEC_SETTING_NAME_SOUNDBAR_MODE jest ustawiona na SOUNDBAR_MODE_DISABLED .

HdmiControlService nasłuchuje zmian w ustawieniu CEC_SETTING_NAME_SOUNDBAR_MODE , aby wykonać następujące czynności:

  • Sprawdź, czy istnieje lokalne urządzenie odtwarzające i czy obsługiwana jest właściwość ARC .
  • Wyzwalaj alokację adresów logicznych, aby dodać lub usunąć lokalne urządzenie audio.
  • Upewnij się, że stan ustawienia zostanie zachowany, jeśli urządzenie jest podłączone podczas pracy.

Zobacz poniższy przykład deklaracji, aby ustawić i uzyskać stan trybu listwy dźwiękowej:

    /**
     * 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.
     *
     * <p>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.
     *
     * <p>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() {}

Wdrożenie OEM

Aby obsługiwać funkcję dynamicznego listwy dźwiękowej, producenci OEM muszą upewnić się, że sprzęt ją obsługuje. Producenci OEM muszą skonfigurować urządzenie i wdrożyć systemowy interfejs użytkownika, aby zapewnić wymagany interfejs dla danych wejściowych użytkownika.

Implementacja urządzenia

Aby obsługiwać funkcję listwy dźwiękowej na urządzeniu:

  1. Wyświetl urządzenie odtwarzające w systemie Android 14.
  2. Zaimplementuj port HDMI ARC w sterowniku.
  3. Pozostaw wartości RRO config_cecSoundbarModeEnabled_default i config_cecSoundbarModeDisabled_default niezmienione w config.xml , aby funkcja pozostała domyślnie wyłączona.

  4. Upewnij się, że urządzenie ma wbudowane lub podłączone głośniki do odtwarzania dźwięku, a następnie dokonaj edycji konfiguracji zasad audio .

  5. Ustaw właściwość systemową persist.sys.hdmi.property_arc_support na true , aby wskazać, że obsługiwana jest funkcja ARC.

  6. Wyświetl ustawienie umożliwiające przełączenie trybu listwy dźwiękowej w interfejsie użytkownika systemu .

Do debugowania użyj następującego polecenia adb , aby włączyć lub wyłączyć funkcję listwy dźwiękowej ( 1 oznacza włączenie i 0 wyłączenie):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

Implementacja SysUI

W tej sekcji opisano zalecany, próbny przepływ interfejsu użytkownika służący do włączania i wyłączania DSM. Ustawienie wyjścia audio znajduje się w menu Wyświetlacz i dźwięk , jak pokazano na rysunku 1:

dsm_audio_output

Rysunek 1. Ustawienie wyjścia audio w menu Wyświetlacz i dźwięk .

Aby system DSM działał, należy włączyć ustawienie Włącz HDMI-CEC . Ustawienie ARC można włączyć tylko wtedy, gdy włączona jest funkcja HDMI-CEC. Ustawienie ARC jest wyszarzone i wyłączone, jeśli HDMI-CEC jest wyłączone, jak pokazano na rysunku 2. W poniższym przebiegu interfejsu użytkownika, gdy użytkownik wyłączy ustawienie Włącz HDMI-CEC w menu Wyświetlacz i dźwięk i wybierze Głośnik domowy , ARC ustawienie jest wyłączone. Użytkownik może włączyć ustawienie dźwięku telewizora Play , włączając opcję Włącz HDMI-CEC .

dsm_ui_disable_arc

Rysunek 2. Interfejs użytkownika dla wyłączonej opcji ARC.

Gdy włączone jest ustawienie HDMI-CEC, użytkownik może użyć ustawienia ARC w obszarze Wyjście audio , aby włączyć i wyłączyć DSM. Aby włączyć DSM, użytkownik postępuje zgodnie z instrukcjami interfejsu użytkownika pokazanymi na rysunku 3. W poniższym procesie interfejsu użytkownika, aby włączyć tryb listwy dźwiękowej, użytkownik wybiera opcję Głośnik domowy oraz wybiera i potwierdza ustawienie ARC . Aby wyłączyć DSM, użytkownik wyłącza ustawienie ARC .

dsm_ui_enable_arc

Rysunek 3. Interfejs użytkownika umożliwiający włączenie DSM.

Walidacja

Producenci OEM mogą przeprowadzić test dźwięku, aby upewnić się, że głośniki urządzenia odtwarzającego odtwarzają dźwięk pochodzący z telewizora lub innych urządzeń podłączonych do panelu telewizora.

Walidacja ręczna

Użyj następujących scenariuszy, aby ręcznie sprawdzić oczekiwane zachowanie:

  • Ustawienie ARC jest włączone:
    • Telewizor sam się wycisza.
    • Dźwięk z telewizora jest kierowany do głośników urządzenia.
  • Ustawienie ARC jest wyłączone:
    • Telewizor przestaje przesyłać dźwięk do urządzenia.
    • Telewizor rozpocznie odtwarzanie dźwięku.
  • Ustawienie ARC jest włączone, a urządzenie jest podłączone do portu innego niż ARC w telewizorze:
    • Urządzenie nie odtwarza dźwięku telewizora.
  • Ustawienie ARC jest włączone, a adres logiczny 5 jest używany przez inne urządzenie przed jego podłączeniem:
    • Urządzenie zachowuje się jak zwykłe urządzenie odtwarzające, a nie jak soundbar.
  • Ustawienie ARC jest włączone, adres logiczny 5 jest używany przez urządzenie, a w sieci podłączony jest inny system audio:
    • Nie ma żadnych zmian w działaniu listwy dźwiękowej urządzenia.
  • Ustawienie ARC jest włączone, adres logiczny 5 jest używany przez urządzenie podłączone do portu innego niż ARC, a do portu ARC podłączony jest inny system audio:
    • Połączenie ARC z telewizorem dla drugiego systemu audio nie zostało nawiązane, ponieważ używa on niezarejestrowanego adresu logicznego.
  • Ustawienie ARC jest włączone, a urządzenie jest podłączone podczas pracy:
    • Urządzenie zachowuje się normalnie, jak wtedy, gdy ustawienie jest włączone.

Walidacja CTS

CtsHdmiCecHostTestCases musi zostać zaliczony, gdy ustawienie listwy dźwiękowej jest wyłączone. Test HdmiCecSoundbarModeTest.java w zestawie testów CtsHdmiCecHostTestCases testuje funkcjonalności DSM.

Chociaż nie jest to wymóg certyfikacyjny, uruchom CtsHdmiCecHostTestCases z włączonym ustawieniem listwy dźwiękowej, aby sprawdzić poprawność implementacji.

Zobacz Testowanie CEC CTS dla urządzeń z systemem Android TV, aby uruchomić testy Android CTS dla HDMI CEC.