Tryb dynamicznego soundbara

Dzięki obsłudze platformy Android 14 producenci OEM mogą konfigurować dekodery i urządzenia OTT z wbudowanymi lub podłączonymi głośnikami jako soundbary dla podłączonych urządzeń. Dynamiczny tryb soundbara (DSM) w Androidzie 14 obsługuje atrybuty HDMI CEC (Consumer Electronics Control) dla soundbarów, takie jak kanał zwrotny audio (ARC) i sterowanie dźwiękiem systemowym.

Ta funkcja jest przeznaczona tylko dla urządzeń odtwarzających CEC na Androidzie TV.

Wymagania

Aby wdrożyć funkcję soundbara, producenci OEM muszą spełniać wymagania dotyczące urządzenia i interfejsu systemu wymienione w tej sekcji.

Wymagania dotyczące urządzeń

Aby obsługiwać DSM, dekoder lub urządzenie OTT musi spełniać te wymagania:

  • Urządzenie musi mieć zainstalowanego Androida 14.
  • Gdy DSM jest włączony, urządzenie musi działać jak soundbar 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ą być na nim wstrzymane, co ogranicza zużycie energii.

Wymagania dotyczące interfejsu systemu

Aby obsługiwać DSM, producenci OEM muszą spełniać te wymagania podczas projektowania interfejsu systemu:

  • Etykieta interfejsu musi zawierać odwołanie do ARC lub Audio Return Channel (ARC).
  • Interfejs musi informować użytkownika, że aby nawiązać połączenie ARC, należy podłączyć urządzenie do portu ARC telewizora.
  • Interfejs musi informować użytkownika, że funkcja może nie działać zgodnie z oczekiwaniami, jeśli w sieci HDMI jest podłączony inny soundbar lub amplituner AV.
  • Interfejs musi informować użytkownika, że podczas przełączania ustawienia ekran może migać.
  • Jeśli urządzenie nie ma wbudowanych głośników, DSM musi być domyślnie wyłączony.

Zalecamy używanie menu Wyświetlacz i dźwięk jako miejsca, w którym użytkownik może włączyć lub wyłączyć ARC. Pokazano to w sekcji Implementacja interfejsu systemowego.

Implementacja platformy

Implementacja funkcji soundbara CEC i dynamicznego przydzielania adresu logicznego 5 znajduje się w platformie Androida. Gdy ustawienie soundbara jest włączone, platforma przydziela adres logiczny, aby urządzenie mogło dynamicznie stać się soundbarem. Gdy ustawienie soundbara jest wyłączone, platforma zwalnia adres logiczny.

Na podstawie danych wprowadzonych przez użytkownika w interfejsie systemu HdmiControlManager ustawia CEC_SETTING_NAME_SOUNDBAR_MODE na SOUNDBAR_MODE_ENABLED lub SOUNDBAR_MODE_DISABLED. Domyślna wartość CEC_SETTING_NAME_SOUNDBAR_MODE to SOUNDBAR_MODE_DISABLED.

HdmiControlService reaguje na zmianę ustawienia CEC_SETTING_NAME_SOUNDBAR_MODE w ten sposób:

  • Sprawdź, czy istnieje lokalne urządzenie odtwarzające i czy obsługuje ono właściwość ARC.
  • Wywołaj przydzielanie adresów logicznych, aby dodać lub usunąć lokalne urządzenie audio.
  • Sprawdź, czy stan ustawienia jest zachowany, jeśli urządzenie jest podłączone na gorąco.

Aby ustawić i uzyskać stan trybu soundbara, zapoznaj się z tym przykładem deklaracji:

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

Implementacja OEM

Aby obsługiwać funkcję dynamicznego soundbara, producenci OEM muszą zadbać o to, aby sprzęt ją obsługiwał. Producenci OEM muszą skonfigurować urządzeniewdrożyć interfejs systemu, aby zapewnić wymagany interfejs do wprowadzania danych przez użytkownika.

Wdrożenie urządzenia

Aby obsługiwać funkcję soundbara na urządzeniu:

  1. Wyświetl urządzenie odtwarzające na Androidzie 14.
  2. Zaimplementuj port HDMI ARC w sterowniku.
  3. Pozostaw wartości RRO config_cecSoundbarModeEnabled_defaultconfig_cecSoundbarModeDisabled_defaultconfig.xml bez zmian, aby funkcja pozostała domyślnie wyłączona.

  4. Sprawdź, czy urządzenie ma wbudowane lub podłączone głośniki, na których można odtwarzać dźwięk, i edytuj konfigurację zasad dotyczących dźwięku.

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

  6. Udostępnij ustawienie przełączania trybu soundbara w interfejsie systemu.

  7. Aby debugować, użyj tego polecenia adb, aby włączyć lub wyłączyć funkcję soundbara (1 oznacza włączenie, a 0 – wyłączenie):

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

Implementacja interfejsu systemu

W tej sekcji opisujemy zalecany przykładowy interfejs włączania i wyłączania DSM. Ustawienie Wyjście 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 DSM działał, ustawienie Włącz HDMI-CEC musi być włączone. Ustawienie ARC można włączyć tylko wtedy, gdy włączona jest funkcja HDMI-CEC. Ustawienie ARC jest niedostępne i wyłączone, jeśli HDMI-CEC jest wyłączone, jak pokazano na rysunku 2. W poniższym przepływie interfejsu, gdy użytkownik wyłączy ustawienie Włącz HDMI-CEC w menu Wyświetlacz i dźwięk i wybierze Głośnik domowy, ustawienie ARC zostanie wyłączone. Użytkownik może włączyć ustawienie Odtwarzaj dźwięk z telewizora, włączając Włącz HDMI-CEC.

dsm_ui_disable_arc

Rysunek 2. Interfejs opcji ARC, która jest wyłączona.

Gdy ustawienie HDMI-CEC jest włączone, użytkownik może włączyć i wyłączyć DSM za pomocą ustawienia ARC w sekcji Wyjście audio. Aby włączyć DSM, użytkownik musi wykonać czynności przedstawione na ilustracji 3. Aby włączyć tryb soundbara, użytkownik wybiera Głośnik domowy, a następnie wybiera i potwierdza ustawienie ARC. Aby wyłączyć DSM, użytkownik wyłącza ustawienie ARC.

dsm_ui_enable_arc

Rysunek 3. interfejsu umożliwiającego włączenie DSM;

Weryfikacja

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

Ręczna weryfikacja

Aby ręcznie sprawdzić oczekiwane działanie, skorzystaj z tych scenariuszy:

  • Ustawienie ARC jest włączone:
    • Telewizor wyciszy się.
    • Dźwięk z telewizora jest kierowany do głośników urządzenia.
  • Ustawienie ARC jest wyłączone:
    • Telewizor przestanie przesyłać dźwięk na urządzenie.
    • Telewizor zacznie odtwarzać dźwięk.
  • Ustawienie ARC jest włączone, a urządzenie jest podłączone do portu telewizora innego niż ARC:
    • Urządzenie nie odtwarza dźwięku z telewizora.
  • Ustawienie ARC jest włączone, a adres logiczny 5 jest używany przez inne urządzenie przed podłączeniem urządzenia:
    • Urządzenie zachowuje się jak zwykły głośnik, a nie soundbar.
  • Ustawienie ARC jest włączone, adres logiczny 5 jest używany przez urządzenie, a w sieci jest podłączony inny system audio:
    • Zachowanie soundbara urządzenia nie ulegnie zmianie.
  • 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 jest podłączony inny system audio:
    • Połączenie ARC nie jest nawiązywane z telewizorem w przypadku drugiego systemu audio, ponieważ używa on niezarejestrowanego adresu logicznego.
  • Ustawienie ARC jest włączone, a urządzenie jest podłączone na gorąco:
    • Urządzenie zachowuje się normalnie, tak jak w przypadku włączonego ustawienia.

Weryfikacja CTS

CtsHdmiCecHostTestCases jest wymagane, gdy ustawienie soundbara jest wyłączone. Test HdmiCecSoundbarModeTest.java w pakiecie testów CtsHdmiCecHostTestCases sprawdza funkcje DSM.

Chociaż nie jest to wymagane do uzyskania certyfikatu, uruchom CtsHdmiCecHostTestCases z włączonym ustawieniem soundbara, aby sprawdzić implementację.

Aby uruchomić testy CTS Androida dla HDMI CEC, zapoznaj się z artykułem Testowanie CTS CEC na urządzeniach z Androidem TV.