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
Wenn OEMs die Funktion „Soundbar“ verwenden möchten, müssen sie die in diesem Abschnitt aufgeführten Anforderungen an das Gerät und die 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 über integrierte oder verbundene Lautsprecher 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.
- Die Benutzeroberfläche muss den Nutzer darüber informieren, dass er das Gerät an den ARC-Anschluss des Fernsehers anschließen muss, um eine 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 SOUNDBAR_MODE_DISABLED
.
HdmiControlService
überwacht die Änderung der CEC_SETTING_NAME_SOUNDBAR_MODE
-Einstellung und führt dann Folgendes aus:
- Prüfe, ob ein Gerät für die lokale Wiedergabe 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.
In den folgenden Beispieldeklarationen wird gezeigt, wie der Status des Soundbar-Modus festgelegt und abgerufen wird:
/**
* 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:
- Rufe unter Android 14 das Wiedergabegerät auf.
- Implementieren Sie den HDMI ARC-Port im Treiber.
Lassen Sie die RRO-Werte
config_cecSoundbarModeEnabled_default
undconfig_cecSoundbarModeDisabled_default
inconfig.xml
unverändert, damit die Funktion standardmäßig deaktiviert bleibt.Achten Sie darauf, dass das Gerät entweder integrierte oder angeschlossene Lautsprecher hat, um Audio abzuspielen, und bearbeiten Sie die Konfiguration der Audiorichtlinie.
Legen Sie die Systemeigenschaft
persist.sys.hdmi.property_arc_support
auftrue
fest, um anzugeben, dass ARC unterstützt wird.Die Einstellung zum Umschalten des Soundbar-Modus in der System-Benutzeroberfläche anzeigen.
Verwenden Sie zum Debuggen den folgenden
adb
-Befehl, um die Funktion für die Soundbar zu aktivieren oder zu deaktivieren (1
für „An“ und0
für „Aus“):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
SysUI-Implementierung
In diesem Abschnitt wird ein empfohlener Mockup-UI-Ablauf zum Ein- und Ausschalten von DSM beschrieben. Die Einstellung Audioausgabe befindet sich im Menü Display & Ton, wie in Abbildung 1 dargestellt:
Abbildung 1. Audioausgabeeinstellung im Menü „Display und 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 und Ton deaktiviert und Heimlautsprecher auswählt, wird die Einstellung ARC deaktiviert. Der Nutzer kann die Einstellung Fernsehaudio wiedergeben aktivieren, indem er HDMI-CEC aktivieren aktiviert.
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. Wenn der Nutzer DSM deaktivieren möchte, deaktiviert er die Einstellung 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
Mit den folgenden Szenarien können Sie das erwartete Verhalten manuell prüfen:
- 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 das Audiosignal 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 vom Gerät verwendet, das mit einem nicht ARC-fähigen 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 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.
Führen Sie CtsHdmiCecHostTestCases
mit aktivierter Soundbar-Einstellung aus, um Ihre Implementierung zu validieren. Dies ist zwar keine Zertifizierungsanforderung.
Weitere Informationen finden Sie unter CEC-CTS-Tests für Android TV-Geräte.