Mit der Unterstützung für das Android 14-Framework können OEMs Set-Top-Boxen (STBs) und Over-the-Top-Geräte (OTT) mit integrierten oder angeschlossenen 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 CEC-Wiedergabegeräte für Android TV vorgesehen.
Voraussetzungen
Damit OEMs die Soundbar-Funktion nutzen können, müssen sie die in diesem Abschnitt aufgeführten Geräte- und System-UI-Anforderungen erfüllen.
Geräteanforderungen
Damit DSM unterstützt wird, muss die 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 gemäß den HDMI-CEC-Spezifikationen wie eine Soundbar verhalten, z. B. in Bezug auf ARC.
- Das Gerät muss in der Lage sein, Ton über integrierte oder verbundene Lautsprecher wiederzugeben.
- 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
Um DSM zu unterstützen, müssen OEMs bei der Gestaltung der System-UI die folgenden Anforderungen erfüllen:
- Das UI-Label muss einen Verweis auf ARC oder Audio Return Channel (ARC) enthalten.
- Die Benutzeroberfläche muss den Nutzer darüber informieren, dass er das Gerät mit dem ARC-Anschluss des Fernsehers verbinden 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) im HDMI-Netzwerk angeschlossen ist.
- Die Benutzeroberfläche 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 & Sound (Display und Ton) als Speicherort für die Nutzereinstellung zum Aktivieren oder Deaktivieren von ARC zu verwenden, wie in der SysUI-Implementierung gezeigt.
Framework-Implementierung
Die Implementierung der CEC-Soundbar-Funktionalität und der dynamischen Zuweisung 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 Nutzereingabe in der System-UI legt HdmiControlManager
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
reagiert auf die Änderung der Einstellung CEC_SETTING_NAME_SOUNDBAR_MODE
und führt die folgenden Aktionen aus:
- Prüfe, ob ein lokales Wiedergabegerät vorhanden ist und die ARC-Property unterstützt wird.
- Weisen Sie logische Adressen zu, um das lokale Audiogerät hinzuzufügen oder zu entfernen.
- Achten Sie darauf, dass der Status der Einstellung beibehalten wird, wenn das Gerät im laufenden Betrieb angeschlossen wird.
Im folgenden Beispiel sehen Sie 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 sie unterstützt. 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:
- Rufen Sie das Wiedergabegerät unter Android 14 auf.
- Implementieren Sie den HDMI ARC-Port im Treiber.
Lassen Sie die RRO-Werte von
config_cecSoundbarModeEnabled_default
undconfig_cecSoundbarModeDisabled_default
inconfig.xml
unverändert, damit das Feature standardmäßig deaktiviert bleibt.Achten Sie darauf, dass das Gerät entweder integrierte oder angeschlossene Lautsprecher hat, auf denen die Audioinhalte abgespielt werden können, und bearbeiten Sie die Konfiguration der Audio-Richtlinie.
Legen Sie das Systemattribut
persist.sys.hdmi.property_arc_support
auftrue
fest, um anzugeben, dass ARC unterstützt wird.Die Einstellung zum Ein- und Ausschalten des Soundbar-Modus in der System-UI verfügbar machen.
Verwenden Sie zum Debuggen den folgenden
adb
-Befehl, um die Soundbar-Funktion zu aktivieren (1
) oder zu deaktivieren (0
):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Implementierung der System‑UI
In diesem Abschnitt wird ein empfohlener, simulierter UI-Ablauf zum Aktivieren und Deaktivieren von DSM beschrieben. Die Einstellung Audioausgabe befindet sich im Menü Display & Ton, wie in Abbildung 1 dargestellt:
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 (siehe Abbildung 2). Wenn der Nutzer im folgenden UI-Ablauf die Einstellung HDMI-CEC aktivieren im Menü Display & Sound deaktiviert und Home-Lautsprecher auswählt, wird die Einstellung ARC deaktiviert. Der Nutzer kann die Einstellung TV-Audio wiedergeben aktivieren, indem er HDMI-CEC aktivieren aktiviert.
Abbildung 2: Benutzeroberfläche für 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 Home-Lautsprecher aus und bestätigt die Einstellung ARC, um den Soundbar-Modus zu aktivieren. Wenn der Nutzer DSM deaktivieren möchte, muss er die Einstellung ARC deaktivieren.
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 von anderen Geräten stammt, 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 schaltet den Ton stumm.
- Der TV-Ton wird an die Lautsprecher des Geräts weitergeleitet.
- Die Einstellung ARC ist deaktiviert:
- Der Fernseher leitet das Audiosignal nicht mehr an das Gerät weiter.
- Der Fernseher beginnt mit der Audiowiedergabe.
- Die Einstellung ARC ist aktiviert und das Gerät ist mit einem Nicht-ARC-Anschluss des Fernsehers 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 angeschlossen wird:
- Das Gerät verhält sich wie ein reines Wiedergabegerät und 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 vom Gerät verwendet, das an einen Nicht-ARC-Anschluss angeschlossen ist, und ein anderes Audiosystem ist an den ARC-Anschluss angeschlossen:
- 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 im laufenden Betrieb angeschlossen:
- Das Gerät verhält sich wie gewohnt, als wäre die Einstellung aktiviert.
CTS-Validierung
CtsHdmiCecHostTestCases
ist erforderlich, wenn die Soundbar-Einstellung deaktiviert ist. Der Test HdmiCecSoundbarModeTest.java
in der Testsuite CtsHdmiCecHostTestCases
testet die DSM-Funktionen.
Obwohl es keine Zertifizierungsanforderung ist, sollten Sie CtsHdmiCecHostTestCases
mit aktivierter Soundbar-Einstellung ausführen, um Ihre Implementierung zu validieren.
Informationen zum Ausführen der Android-CTS-Tests für HDMI CEC findest du unter CEC-CTS-Tests für Android TV-Geräte.