Dynamischer Soundbar-Modus

Mit Framework-Unterstützung für Android 14, Set-Top-Boxen und Over-the-Top-Geräte (OTT) mit integrierten oder verbundenen Lautsprechern lassen sich als Soundbars für verbundene Geräte konfiguriert. Der dynamische Soundbar-Modus (DSM) in Android 14 unterstützt den HDMI-Nutzer, CEC-Attribute (Electronics Control) für Soundbars, z. B. den Audiorückkanal und die Audiosteuerung des Systems.

Diese Funktion ist nur auf Android TV-CEC-Wiedergabegeräte ausgerichtet.

Voraussetzungen

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

Geräteanforderungen

Zur Unterstützung von DSM muss das STB/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, HDMI CEC-Spezifikationen, z. B. ARC.
  • Das Gerät muss in der Lage sein, den Ton über einen integrierten oder Lautsprechern.
  • Wenn das Gerät keine aktive Quelle ist, müssen alle Medien auf der und den Stromverbrauch reduzieren.

System-UI-Anforderungen

Um DSM zu unterstützen, müssen OEMs bei der Entwicklung des System-UI:

  • Das UI-Label muss einen Verweis auf ARC oder Audio Return Channel (ARC):
  • Auf der Benutzeroberfläche muss der Nutzer informiert werden, dass er das Gerät an den ARC-Port des Fernsehers anschließen soll, die ARC-Verbindung herstellen.
  • In der Benutzeroberfläche muss der Nutzer darüber informiert werden, dass die Funktion möglicherweise nicht wie erwartet funktioniert, wenn eine andere Soundbar oder ein Audio-/Video-Receiver (AVR) am HDMI-Port angeschlossen ist Netzwerk.
  • Die Benutzeroberfläche muss den Nutzer darüber informieren, dass der Bildschirm beim Umschalten der Taste Einstellung.
  • Wenn das Gerät keine integrierten Lautsprecher hat, muss DSM standardmäßig deaktiviert sein.

Best Practice: Wir empfehlen, die Display- und Tonmenü als Standort für die Nutzereinstellung zum Aktivieren oder Deaktivieren von ARC, wie in SysUI-Implementierung:

Framework-Implementierung

Implementierung der CEC-Soundbar-Funktion und der dynamischen Zuordnung der logischen Adresse 5 ist im Android-Framework vorhanden. Das Framework weist die logische Adresse, wenn die Soundbar-Einstellung aktiviert ist, damit das Gerät dynamisch zu einer Soundbar werden. Wenn die Soundbar-Einstellung deaktiviert ist, teilt das Framework die Zuordnung der logischen Adresse auf.

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

HdmiControlService hört die Änderung in CEC_SETTING_NAME_SOUNDBAR_MODE zu können Sie Folgendes tun:

  • Überprüfe, ob ein lokales Wiedergabegerät vorhanden und die ARC-Eigenschaft unterstützt.
  • Lösen Sie die logische Adresszuweisung aus, um das lokale Audiogerät hinzuzufügen oder zu entfernen.
  • Achten Sie darauf, dass der Status der Einstellung erhalten bleibt, wenn das Gerät über Hotplugged verbunden ist.

Im folgenden Beispiel sehen Sie, wie Deklarationen festgelegt und deren Status abgerufen werden können. 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.
     *
     * <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 dafür sorgen, dass die Hardware unterstützt. OEMs müssen das Gerät konfigurieren und System-UI implementieren, um die erforderliche Schnittstelle für Nutzereingaben.

Geräteimplementierung

So aktivieren Sie die Soundbar-Funktion auf einem Gerät:

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

  4. Stellen Sie sicher, dass das Gerät verbundenen Lautsprechern, um den Ton abzuspielen, und bearbeiten Sie die Konfiguration der Audiorichtlinie.

  5. Legen Sie als Systemeigenschaft persist.sys.hdmi.property_arc_support Folgendes fest: true, um anzuzeigen, dass ARC unterstützt wird.

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

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

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

SysUI-Implementierung

Dieser Abschnitt beschreibt einen empfohlenen, simulierten UI-Ablauf zum Ein- und Ausschalten von DSM. Die Einstellung Audioausgabe befindet sich unter Display & Ton aus, wie gezeigt. in Abbildung 1:

DSM-Audioausgabe

Abbildung 1: die Einstellung für die Audioausgabe unter Display & Ton aus.

Damit DSM funktioniert, muss die Einstellung HDMI-CEC aktivieren aktiviert sein. Die Die ARC-Einstellung kann nur aktiviert werden, wenn HDMI-CEC aktiviert ist. ARC-Einstellung ist ausgegraut und deaktiviert, wenn HDMI-CEC deaktiviert ist (siehe Abbildung 2). Im Wenn der Nutzer im folgenden UI-Ablauf die Einstellung HDMI-CEC aktivieren deaktiviert, das Display- und Ton und wählen Sie Lautsprecher für Zuhause, die ARC-Einstellung aus. deaktiviert ist. Der Nutzer kann die Einstellung TV-Audio wiedergeben folgendermaßen aktivieren: aktivieren Sie HDMI-CEC aktivieren.

Arc

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

Wenn die HDMI-CEC-Einstellung aktiviert ist, kann der Nutzer die ARC-Einstellung unter Audioausgabe, um DSM zu aktivieren oder zu deaktivieren. Zum Aktivieren von DSM folgt der Nutzer der Benutzeroberfläche. wie in Abbildung 3 dargestellt. Um den Soundbar-Modus zu aktivieren, muss der Nutzer wählt Lautsprecher in der Home App und dann die Einstellung ARC aus. Um deaktiviert der Nutzer die Einstellung ARC.

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 wiedergeben, der vom Fernseher oder anderen mit dem Fernseher verbundenen Geräten stammt .

Manuelle Validierung

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

  • Die Einstellung ARC ist aktiviert:
    • Der Fernseher schaltet sich selbst stumm.
    • Der Ton des Fernsehers wird über die Lautsprecher des Geräts ausgegeben.
  • Die Einstellung ARC ist deaktiviert:
    • Der Fernseher leitet die Audiodaten nicht mehr an das Gerät weiter.
    • Der Fernseher beginnt mit der Audiowiedergabe.
  • Die ARC-Einstellung ist aktiviert und das Gerät ist mit einem Nicht-ARC-Gerät verbunden. zum Fernseher verbinden:
    • Das Gerät spielt den Ton des Fernsehers nicht ab.
  • Die Einstellung ARC ist aktiviert und die logische Adresse 5 wird von einem anderen verwendet Gerät, bevor es 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 im Netzwerk verbunden ist:
    • Das Verhalten der Soundbar des Geräts bleibt unverändert.
  • Die Einstellung ARC ist aktiviert, logische Adresse 5 wird vom Gerät verwendet an einen Nicht-ARC-Anschluss angeschlossen und ein anderes Audiosystem ARC-Anschluss:
    • Für den zweiten Ton wurde keine ARC-Verbindung zum Fernseher hergestellt. da es eine nicht registrierte logische Adresse verwendet.
  • Die ARC-Einstellung ist aktiviert und das Gerät ist über Hotplugged verbunden:
    • Das Gerät verhält sich wie bei aktivierter Einstellung wie gewohnt.

CTS-Validierung

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

Führen Sie CtsHdmiCecHostTestCases mit dem Soundbar-Einstellung aktiviert, um deine Implementierung zu validieren.

Siehe CEC-CTS-Tests für Android TV-Geräte um die Android-CTS-Tests für HDMI CEC auszuführen.