Dynamischer Soundbar-Modus

Mit der Unterstützung des Android 14-Frameworks können Set-Top-Boxen (STBs) und Over-the-Top-Geräte (OTT) mit integrierten oder angeschlossenen Lautsprechern als Soundbars für angeschlossene Geräte konfiguriert werden. Der dynamische Soundbar-Modus (DSM) in Android 14 unterstützt die HDMI Consumer Electronics Control (CEC)-Attribute für Soundbars, wie z. B. Audio Return Channel (ARC) und System-Audiosteuerung.

Diese Funktion richtet sich nur an Android TV CEC-Wiedergabegeräte.

Anforderungen

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

Geräteanforderungen

Um DSM zu unterstützen, muss das STB/OTT-Gerät die folgenden Anforderungen erfüllen:

  • Auf dem Gerät muss Android 14 laufen.
  • Wenn DSM aktiviert ist, muss sich das Gerät wie eine Soundbar verhalten und den HDMI-CEC-Spezifikationen wie ARC entsprechen.
  • Das Gerät muss in der Lage sein, Ton über eingebaute oder angeschlossene Lautsprecher wiederzugeben.
  • Wenn das Gerät keine aktive Quelle ist, müssen alle Medien auf dem Gerät angehalten werden, um den Stromverbrauch zu begrenzen.

Anforderungen an die Benutzeroberfläche des Systems

Um DSM zu unterstützen, müssen OEMs beim Entwerfen der System-Benutzeroberfläche die folgenden Anforderungen erfüllen:

  • Das UI-Label muss einen Verweis auf ARC oder Audio Return Channel (ARC) enthalten.
  • Die Benutzeroberfläche muss den Benutzer dazu auffordern, das Gerät an den ARC-Anschluss des Fernsehers anzuschließen, um die ARC-Verbindung herzustellen.
  • Die Benutzeroberfläche muss den Benutzer darüber informieren, dass die Funktion möglicherweise nicht wie erwartet funktioniert, wenn eine andere Soundbar oder ein anderer Audio-/Video-Receiver (AVR) im HDMI-Netzwerk angeschlossen ist.
  • Die Benutzeroberfläche muss den Benutzer darüber informieren, dass der Bildschirm beim Umschalten der Einstellung flackern könnte.
  • Wenn das Gerät keine eingebauten Lautsprecher hat, muss DSM standardmäßig deaktiviert sein.

Best Practice: Wir empfehlen, das Menü „Display & Sound“ als Speicherort für die Benutzereinstellung zum Aktivieren oder Deaktivieren von ARC zu verwenden, wie in der SysUI-Implementierung gezeigt.

Framework-Implementierung

Die Implementierung der CEC-Soundbar-Funktionalität und die dynamische Vergabe der logischen Adresse 5 ist 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 Benutzereingabe auf der Systembenutzeroberfläche setzt HdmiControlManager 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 lauscht auf die Änderung in der CEC_SETTING_NAME_SOUNDBAR_MODE -Einstellung, um Folgendes zu tun:

  • Überprüfen Sie, ob ein lokales Wiedergabegerät vorhanden ist und die ARC- Eigenschaft unterstützt wird.
  • Lösen Sie die logische Adresszuweisung aus, um das lokale Audiogerät hinzuzufügen oder zu entfernen.
  • Stellen Sie sicher, dass der Status der Einstellung erhalten bleibt, wenn das Gerät im laufenden Betrieb angeschlossen ist.

Sehen Sie sich das folgende Beispiel für Deklarationen zum Festlegen und Abrufen des Status des Soundbar-Modus an:

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

OEM-Implementierung

Um die dynamische Soundbar-Funktion zu unterstützen, müssen OEMs sicherstellen, dass die Hardware sie unterstützt. OEMs müssen das Gerät konfigurieren und die System-Benutzeroberfläche implementieren , um die erforderliche Schnittstelle für Benutzereingaben 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. Lassen Sie die RRO-Werte von config_cecSoundbarModeEnabled_default und config_cecSoundbarModeDisabled_default in config.xml unverändert, damit die Funktion standardmäßig deaktiviert bleibt.

  4. Stellen Sie sicher, dass das Gerät entweder über integrierte oder angeschlossene Lautsprecher zur Audiowiedergabe verfügt, und bearbeiten Sie die Audiorichtlinienkonfiguration .

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

  6. Machen Sie die Einstellung verfügbar, um den Soundbar-Modus in der System-Benutzeroberfläche umzuschalten.

Verwenden Sie zum Debuggen den folgenden adb Befehl, um die Soundbar-Funktion ein- oder auszuschalten ( 1 für ein und 0 für aus):

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

SysUI-Implementierung

In diesem Abschnitt wird ein empfohlener, simulierter UI-Ablauf zum Ein- und Ausschalten von DSM beschrieben. Die Einstellung „Audioausgabe“ befindet sich im Menü „Anzeige und Ton“ , wie in Abbildung 1 dargestellt:

dsm_audio_output

Abbildung 1. Audioausgabe-Einstellung im Menü „Anzeige 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 ARC- Einstellung ist ausgegraut und deaktiviert, wenn HDMI-CEC deaktiviert ist, wie in Abbildung 2 dargestellt. Wenn der Benutzer im folgenden UI-Ablauf die Einstellung „HDMI-CEC aktivieren“ im Menü „Anzeige und Ton“ deaktiviert und „ Heimlautsprecher “ auswählt, wird der ARC angezeigt Einstellung ist deaktiviert. Der Benutzer kann die Einstellung „Fernsehaudio abspielen“ aktivieren, indem er „HDMI-CEC aktivieren“ aktiviert.

dsm_ui_disable_arc

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

Wenn die HDMI-CEC-Einstellung aktiviert ist, kann der Benutzer die ARC- Einstellung unter Audioausgabe verwenden, um DSM ein- und auszuschalten. Um DSM zu aktivieren, folgt der Benutzer dem UI-Ablauf in Abbildung 3. Im folgenden UI-Ablauf wählt der Benutzer zum Aktivieren des Soundbar-Modus Home Speaker aus und wählt und bestätigt die ARC- Einstellung. Um DSM auszuschalten, schaltet der Benutzer die ARC -Einstellung aus.

dsm_ui_enable_arc

Abbildung 3. Benutzeroberfläche zum Aktivieren von DSM.

Validierung

OEMs können einen Audiotest durchführen, um sicherzustellen, dass die Lautsprecher des Wiedergabegeräts Ton wiedergeben, der vom Fernseher oder von anderen an das TV-Panel angeschlossenen Geräten stammt.

Manuelle Validierung

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

  • Die ARC- Einstellung ist aktiviert:
    • Der Fernseher schaltet sich stumm.
    • Der TV-Ton wird an die Lautsprecher des Geräts weitergeleitet.
  • Die ARC- Einstellung ist deaktiviert:
    • Der Fernseher stoppt die Audioübertragung zum Gerät.
    • Der Fernseher beginnt mit der Audiowiedergabe.
  • Die ARC- Einstellung ist aktiviert und das Gerät ist an einen Nicht-ARC-Anschluss des Fernsehers angeschlossen:
    • Das Gerät gibt den Ton des Fernsehers nicht wieder.
  • Die ARC- Einstellung 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 im Netzwerk verbunden:
    • Es gibt keine Änderung am Soundbar-Verhalten des Geräts.
  • Die ARC- Einstellung 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 an den ARC-Port angeschlossen:
    • Die ARC-Verbindung mit dem Fernseher für das zweite Audiosystem wird nicht hergestellt, da es eine nicht registrierte logische Adresse verwendet.
  • Die ARC- Einstellung ist aktiviert und das Gerät ist hotplugged:
    • Das Gerät verhält sich normal wie bei aktivierter Einstellung.

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 .