Dynamischer Soundbar-Modus

Mit der Unterstützung des Android 14-Frameworks können OEMs Set-Top-Boxen (STBs) und Over-the-Top-Geräte (OTT) mit integrierten oder verbundenen Lautsprechern als Soundbars für verbundene Geräte konfigurieren. Der dynamische Soundbar-Modus (Dynamic Soundbar Mode, DSM) in Android 14 unterstützt die HDMI-CEC-Attribute (Consumer Electronics Control) für Soundbars, z. B. den Audiorückkanal (Audio Return Channel, ARC) und die Systemaudiosteuerung.

Diese Funktion ist nur für Android TV-CEC-Wiedergabegeräte verfügbar.

Voraussetzungen

Um die Soundbar-Funktion nutzen zu können, müssen OEMs die in diesem Abschnitt aufgeführten Anforderungen an die Geräte- und System-UI erfüllen.

Geräteanforderungen

Für die Unterstützung von DSM muss der STB oder das OTT-Gerät die folgenden Anforderungen erfüllen:

  • Auf dem Gerät muss Android 14 installiert sein.
  • Wenn DSM aktiviert ist, muss sich das Gerät wie eine Soundbar verhalten und die HDMI-CEC-Spezifikationen einhalten, z. B. ARC.
  • Das Gerät muss in der Lage sein, Ton auf integrierten oder verbundenen Lautsprechern abzuspielen.
  • Wenn das Gerät keine aktive Quelle ist, müssen alle Medien auf dem Gerät pausiert werden, um den Stromverbrauch zu begrenzen.

Anforderungen an die System-UI

Zur Unterstützung von DSM müssen OEMs beim Entwerfen der System-UI die folgenden Anforderungen erfüllen:

  • Das UI-Label muss einen Verweis auf ARC oder Audio Return Channel (ARC) enthalten.
  • Über die Benutzeroberfläche muss der Nutzer informiert werden, dass er das Gerät an den ARC-Port des Fernsehers anschließen muss, um die ARC-Verbindung herzustellen.
  • Die Benutzeroberfläche muss den Nutzer darüber informieren, dass die Funktion möglicherweise nicht wie erwartet funktioniert, wenn eine andere Soundbar oder ein anderer Audio-Video-Receiver (AVR) mit dem HDMI-Netzwerk verbunden ist.
  • Die Benutzeroberfläche muss den Nutzer darüber informieren, dass das Display beim Umschalten der Einstellung flackern kann.
  • Wenn das Gerät keine integrierten Lautsprecher hat, muss DSM standardmäßig deaktiviert sein.

Als Best Practice empfehlen wir, die Nutzereinstellung zum Aktivieren oder Deaktivieren von ARC im Menü Display und Ton zu platzieren, wie in der SysUI-Implementierung gezeigt.

Framework-Implementierung

Die Implementierung der CEC-Soundbarfunktion und die dynamische Zuweisung der logischen Adresse 5 sind im Android-Framework vorhanden. Das Framework weist die logische Adresse zu, wenn die Soundbar-Einstellung aktiviert ist, damit das Gerät dynamisch zu einer Soundbar wird. Wenn die Einstellung für die Soundbar deaktiviert ist, deallociert das Framework die logische Adresse.

Basierend auf der Nutzereingabe in der System-UI setzt HdmiControlManager den Wert von CEC_SETTING_NAME_SOUNDBAR_MODE auf SOUNDBAR_MODE_ENABLED oder SOUNDBAR_MODE_DISABLED. Der Standardwert von CEC_SETTING_NAME_SOUNDBAR_MODE ist auf SOUNDBAR_MODE_DISABLED festgelegt.

HdmiControlService überwacht die Änderung der CEC_SETTING_NAME_SOUNDBAR_MODE-Einstellung und führt dann Folgendes aus:

  • Prüfe, ob ein lokales Wiedergabegerät vorhanden ist und die Property ARC unterstützt wird.
  • Triggern Sie die Zuweisung logischer Adressen, um das lokale Audiogerät hinzuzufügen oder zu entfernen.
  • Der Status der Einstellung muss bei Hotplugging des Geräts erhalten bleiben.

Hier ein Beispiel für Deklarationen zum Festlegen und Abrufen des Status des Soundbar-Modus:

    /**
     * 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-Implementierung

Damit die dynamische Soundbar-Funktion unterstützt wird, müssen OEMs dafür sorgen, dass die Hardware diese Funktion unterstützt. OEMs müssen das Gerät konfigurieren und die System-UI implementieren, um die erforderliche Benutzeroberfläche für Nutzereingaben bereitzustellen.

Geräteimplementierung

So unterstützt du die Funktion „Soundbar“ auf einem Gerät:

  1. Rufe unter Android 14 das Wiedergabegerät auf.
  2. Implementieren Sie den HDMI ARC-Port im Treiber.
  3. Lassen Sie die RRO-Werte config_cecSoundbarModeEnabled_default und config_cecSoundbarModeDisabled_default in config.xml unverändert, damit die Funktion standardmäßig deaktiviert bleibt.

  4. Prüfen Sie, ob das Gerät integrierte oder verbundene Lautsprecher hat, über die die Audioinhalte wiedergegeben werden können, und bearbeiten Sie die Konfiguration der Audiorichtlinie.

  5. Legen Sie die Systemeigenschaft persist.sys.hdmi.property_arc_support auf true fest, um anzugeben, dass ARC unterstützt wird.

  6. Öffne die Einstellung zum Umschalten des Soundbarmodus in der System-UI.

  7. Verwenden Sie zur Fehlerbehebung den folgenden adb-Befehl, um die Soundbar-Funktion zu aktivieren oder zu deaktivieren (1 für aktiviert und 0 für deaktiviert):

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

SysUI-Implementierung

In diesem Abschnitt wird ein empfohlener, simulierter Ablauf in der Benutzeroberfläche zum Ein- und Ausschalten von DSM beschrieben. Die Einstellung Audioausgabe befindet sich im Menü Display &Ton, wie in Abbildung 1 dargestellt:

DSM-Audioausgabe

Abbildung 1: Audioausgabeeinstellung im Menü „Display und Ton“.

Damit DSM funktioniert, muss die Einstellung HDMI-CEC aktivieren aktiviert sein. Die ARC-Einstellung kann nur aktiviert werden, wenn HDMI-CEC aktiviert ist. Die Einstellung ARC ist nicht verfügbar und deaktiviert, wenn HDMI-CEC deaktiviert ist (siehe Abbildung 2). Wenn der Nutzer im folgenden UI-Ablauf die Einstellung HDMI-CEC aktivieren im Menü Display und Ton deaktiviert und Heimlautsprecher auswählt, wird die Einstellung ARC deaktiviert. Der Nutzer kann die Einstellung Fernsehaudio abspielen aktivieren, indem er HDMI-CEC aktivieren aktiviert.

Arc

Abbildung 2. Benutzeroberfläche für die deaktivierte ARC-Option

Wenn die HDMI-CEC-Einstellung aktiviert ist, kann der Nutzer die Einstellung ARC unter Audioausgang verwenden, um DSM ein- und auszuschalten. Um DSM zu aktivieren, folgt der Nutzer der Benutzeroberfläche in Abbildung 3. Im folgenden UI-Ablauf wählt der Nutzer Heimlautsprecher aus, um den Soundbar-Modus zu aktivieren, und wählt und bestätigt die Einstellung ARC. Zum Deaktivieren von DSM deaktiviert der Nutzer die Einstellung ARC.

dsm_ui_enable_arc

Abbildung 3 Benutzeroberfläche zum Aktivieren von DSM

Zertifizierungsstufe

OEMs können einen Audiotest durchführen, um sicherzustellen, dass die Lautsprecher des Wiedergabegeräts Ton vom Fernseher oder von anderen Geräten abspielen, die mit dem Fernseher verbunden sind.

Manuelle Validierung

Verwenden Sie die folgenden Szenarien, um das erwartete Verhalten manuell zu validieren:

  • Die Einstellung ARC ist aktiviert:
    • Der Fernseher wird stummgeschaltet.
    • Der Fernsehton wird an die Lautsprecher des Geräts weitergeleitet.
  • Die Einstellung ARC ist deaktiviert:
    • Der Fernseher leitet die Audiodaten nicht mehr an das Gerät weiter.
    • Der Fernseher gibt Audio wieder.
  • Die Einstellung ARC ist aktiviert und das Gerät ist über einen nicht ARC-kompatiblen Anschluss mit dem Fernseher verbunden:
    • Das Gerät gibt den Ton des Fernsehers nicht wieder.
  • Die Einstellung ARC ist aktiviert und die logische Adresse 5 wird von einem anderen Gerät verwendet, bevor das Gerät verbunden wird:
    • Das Gerät verhält sich wie ein reines Wiedergabegerät, nicht wie eine Soundbar.
  • Die ARC-Einstellung ist aktiviert, die logische Adresse 5 wird vom Gerät verwendet und ein anderes Audiosystem ist mit dem Netzwerk verbunden:
    • Das Verhalten der Soundbar des Geräts ändert sich nicht.
  • Die Einstellung ARC ist aktiviert, die logische Adresse 5 wird von dem Gerät verwendet, das an einen Nicht-ARC-Port angeschlossen ist, und ein anderes Audiosystem ist mit dem ARC-Port verbunden:
    • Für das zweite Audiosystem wird keine ARC-Verbindung zum Fernseher hergestellt, da eine nicht registrierte logische Adresse verwendet wird.
  • Die Einstellung ARC ist aktiviert und das Gerät wird per Hot-Plug angeschlossen:
    • Das Gerät verhält sich wie bei aktivierter Einstellung.

CTS-Validierung

CtsHdmiCecHostTestCases muss übergeben werden, wenn die Soundbar-Einstellung deaktiviert ist. Mit dem Test HdmiCecSoundbarModeTest.java in der Testsuite CtsHdmiCecHostTestCases werden die DSM-Funktionen getestet.

Es ist zwar keine Zertifizierungsanforderung, aber führen Sie CtsHdmiCecHostTestCases mit aktivierter Soundbar-Einstellung aus, um Ihre Implementierung zu validieren.

Weitere Informationen finden Sie unter CEC-CTS-Tests für Android TV-Geräte.