Dynamischer Soundbar-Modus

Mit der Android 14-Framework-Unterstützung können OEMs Set-Top-Boxen und OTT-Geräte mit integrierten oder angeschlossenen Lautsprechern so konfigurieren, dass sie als Soundbars für verbundene Geräte dienen. Der dynamische Soundbar-Modus (DSM) in Android 14 unterstützt die HDMI-CEC-Attribute (Consumer Electronics Control) für Soundbars, z. B. ARC (Audio Return Channel) und die System-Audio-Steuerung.

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

Voraussetzungen

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

Geräteanforderungen

Damit DSM unterstützt wird, muss die Set-Top-Box oder das OTT-Gerät die folgenden Anforderungen erfüllen:

  • Auf dem Gerät muss Android 14 ausgeführt werden.
  • Wenn DSM aktiviert ist, muss sich das Gerät wie eine Soundbar verhalten, die den HDMI-CEC-Spezifikationen entspricht, z. B. ARC.
  • Das Gerät muss Audio auf integrierten oder angeschlossenen Lautsprechern wiedergeben können.
  • Wenn das Gerät keine aktive Quelle ist, müssen alle Medien auf dem Gerät pausiert werden, um den Stromverbrauch zu begrenzen.

System-UI-Anforderungen

Damit DSM unterstützt wird, müssen OEMs beim Design der System-UI die folgenden Anforderungen erfüllen:

  • Die UI-Beschriftung muss einen Verweis auf ARC oder Audio Return Channel (ARC) enthalten.
  • Die UI muss den Nutzer auffordern, das Gerät mit dem ARC-Anschluss des Fernsehers zu verbinden, um die ARC-Verbindung herzustellen.
  • Die UI muss den Nutzer darüber informieren, dass die Funktion möglicherweise nicht wie erwartet funktioniert, wenn eine andere Soundbar oder ein Audio-Video-Receiver (AVR) im HDMI-Netzwerk angeschlossen ist.
  • Die UI muss den Nutzer darüber informieren, dass der Bildschirm flackern kann, wenn die Einstellung aktiviert oder deaktiviert wird.
  • Wenn das Gerät keine integrierten Lautsprecher hat, muss DSM standardmäßig deaktiviert sein.

Als Best Practice empfehlen wir, das Menü Display & Ton als Speicherort für die Nutzereinstellung zum Aktivieren oder Deaktivieren von ARC zu verwenden, wie in der System-UI-Implementierung gezeigt.

Framework-Implementierung

Die Implementierung der CEC-Soundbar-Funktionalität 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 Soundbar-Einstellung deaktiviert ist, gibt das Framework die logische Adresse frei.

Basierend auf der Nutzereingabe in der System-UI HdmiControlManager legt CEC_SETTING_NAME_SOUNDBAR_MODE auf SOUNDBAR_MODE_ENABLED oder SOUNDBAR_MODE_DISABLED fest. Der Standardwert von CEC_SETTING_NAME_SOUNDBAR_MODE ist auf SOUNDBAR_MODE_DISABLED festgelegt.

HdmiControlService überwacht die Änderung der Einstellung CEC_SETTING_NAME_SOUNDBAR_MODE und führt folgende Aktionen aus:

  • Prüfen, ob ein lokales Wiedergabegerät vorhanden ist und die ARC-Eigenschaft unterstützt wird.
  • Zuweisung der logischen Adresse auslösen, um das lokale Audiogerät hinzuzufügen oder zu entfernen.
  • Sicherstellen, dass der Status der Einstellung beibehalten wird, wenn das Gerät per Hotplug angeschlossen wird.

Hier ist 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, muss die Hardware sie unterstützen. OEMs müssen das Gerät konfigurieren und die System-UI implementieren, um die erforderliche Schnittstelle für Nutzereingaben bereitzustellen.

Geräteimplementierung

So unterstützen Sie die Soundbar-Funktion auf einem Gerät:

  1. Rufen Sie das Wiedergabegerät unter Android 14 auf.
  2. Implementieren Sie den HDMI-ARC-Anschluss im Treiber.
  3. Ändern Sie die RRO-Werte von config_cecSoundbarModeEnabled_default und config_cecSoundbarModeDisabled_default in config.xml nicht, damit die Funktion standardmäßig deaktiviert bleibt.

  4. Achten Sie darauf, dass das Gerät entweder integrierte oder angeschlossene Lautsprecher für die Audioausgabe hat, und bearbeiten Sie die Audiokonfiguration.

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

  6. Machen Sie die Einstellung zum Aktivieren oder Deaktivieren des Soundbar-Modus in der System-UI verfügbar.

  7. Verwenden Sie zum Debuggen 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>

System-UI-Implementierung

In diesem Abschnitt wird ein empfohlener UI-Ablauf zum Aktivieren und Deaktivieren von DSM beschrieben. Die Einstellung Audioausgabe befindet sich im Menü Display &Ton , wie in Abbildung 1 gezeigt:

dsm_audio_output

Abbildung 1 : Einstellung für die Audioausgabe im Menü „Display &Ton“

Damit DSM funktioniert, muss die Einstellung HDMI-CEC aktivieren aktiviert sein. Die Einstellung ARC kann nur aktiviert werden, wenn HDMI-CEC aktiviert ist. Die Einstellung ARC ist nicht verfügbar und deaktiviert, wenn HDMI-CEC deaktiviert ist, wie in Abbildung 2 gezeigt. Wenn der Nutzer im folgenden UI-Ablauf die Einstellung HDMI-CEC aktivieren im Menü Display & Ton deaktiviert und Lautsprecher auswählt, wird die Einstellung ARC deaktiviert. Der Nutzer kann die Einstellung Audio vom Fernseher wiedergeben aktivieren, indem er HDMI-CEC aktivieren aktiviert.

dsm_ui_disable_arc

Abbildung 2 : UI für die deaktivierte ARC-Option

Wenn die HDMI-CEC-Einstellung aktiviert ist, kann der Nutzer die Einstellung ARC unter Audioausgabe verwenden, um DSM zu aktivieren und zu deaktivieren. Um DSM zu aktivieren, folgt der Nutzer dem UI-Ablauf in Abbildung 3. Im folgenden UI-Ablauf wählt der Nutzer Lautsprecher aus und wählt und bestätigt die Einstellung ARC , um den Soundbar-Modus zu aktivieren. Um DSM zu deaktivieren, deaktiviert der Nutzer die Einstellung ARC.

dsm_ui_enable_arc

Abbildung 3 : UI zum Aktivieren von DSM

Validierung

OEMs können einen Audiotest durchführen, um sicherzustellen, dass die Lautsprecher des Wiedergabegeräts Audio vom Fernseher oder von anderen Geräten wiedergeben, die mit dem Fernsehbildschirm 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 Ton des Fernsehers wird an die Lautsprecher des Geräts weitergeleitet.
  • Die Einstellung ARC ist deaktiviert:
    • Der Fernseher leitet den Ton nicht mehr an das Gerät weiter.
    • Der Fernseher gibt Audio wieder.
  • Die Einstellung ARC ist aktiviert und das Gerät ist mit einem Nicht-ARC-Anschluss des Fernsehers verbunden:
    • Das Gerät gibt keinen Ton vom Fernseher wieder.
  • Die Einstellung ARC ist aktiviert und die logische Adresse 5 wird von einem anderen Gerät verwendet, bevor das Gerät angeschlossen wird:
    • Das Gerät verhält sich wie ein reines Wiedergabegerät, nicht wie eine Soundbar.
  • Die Einstellung **ARC** ist aktiviert, die logische Adresse 5 wird vom Gerät verwendet und ein anderes Audiosystem ist mit dem Netzwerk verbunden:
    • Das Soundbar-Verhalten des Geräts ändert sich nicht.
  • Die Einstellung ARC ist aktiviert, die logische Adresse 5 wird vom Gerät verwendet, das mit einem Nicht-ARC-Anschluss verbunden ist, und ein anderes Audiosystem ist mit dem ARC-Anschluss verbunden:
    • Die ARC-Verbindung wird für das zweite Audiosystem nicht mit dem Fernseher hergestellt, da es eine nicht registrierte logische Adresse verwendet.
  • Die Einstellung ARC ist aktiviert und das Gerät wird per Hotplug angeschlossen:
    • Das Gerät verhält sich normal, wie wenn die Einstellung aktiviert ist.

CTS-Validierung

CtsHdmiCecHostTestCases muss bestanden werden, wenn die Soundbar-Einstellung deaktiviert ist. Der HdmiCecSoundbarModeTest.java Test in der CtsHdmiCecHostTestCases Testsuite testet die DSM-Funktionen.

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

Informationen zum Ausführen der Android CTS-Tests für HDMI-CEC finden Sie unter CEC CTS-Tests für Android TV-Geräte.