Dengan dukungan framework Android 14, OEM dapat mengonfigurasi set-top box (STB) dan perangkat over-the-top (OTT) dengan speaker bawaan atau terhubung menjadi soundbar untuk perangkat terhubung. Mode soundbar dinamis (DSM) di Android 14 mendukung atribut kontrol elektronik konsumen (CEC) HDMI untuk soundbar, seperti saluran return audio (ARC) dan kontrol audio sistem.
Fitur ini hanya menargetkan perangkat pemutaran CEC Android TV.
Persyaratan
Untuk mengadopsi fitur soundbar, OEM harus memenuhi persyaratan perangkat dan UI Sistem yang tercantum di bagian ini.
Persyaratan perangkat
Untuk mendukung DSM, perangkat STB atau OTT harus memenuhi persyaratan berikut:
- Perangkat harus menjalankan Android 14.
- Saat DSM diaktifkan, perangkat harus berperilaku seperti soundbar yang mengikuti spesifikasi HDMI CEC, seperti ARC.
- Perangkat harus dapat memutar suara di speaker bawaan atau terhubung.
- Jika perangkat bukan sumber aktif, semua media harus dijeda di perangkat, sehingga membatasi konsumsi dayanya.
Persyaratan UI Sistem
Untuk mendukung DSM, OEM harus memenuhi persyaratan berikut saat mendesain UI Sistem:
- Label UI harus menyertakan referensi ke ARC atau Audio Return Channel (ARC).
- UI harus memberi tahu pengguna untuk menghubungkan perangkat ke port ARC TV untuk membangun koneksi ARC.
- UI harus memberi tahu pengguna bahwa fitur tersebut mungkin tidak berfungsi seperti yang diharapkan jika soundbar atau penerima audio-video (AVR) lain terhubung di jaringan HDMI.
- UI harus memberi tahu pengguna bahwa layar mungkin berkedip saat mengalihkan setelan.
- Jika perangkat tidak memiliki speaker bawaan, DSM harus dinonaktifkan secara default.
Sebagai praktik terbaik, sebaiknya gunakan menu Display & Sound sebagai lokasi untuk setelan pengguna guna mengaktifkan atau menonaktifkan ARC, seperti yang ditunjukkan dalam implementasi SysUI.
Penerapan framework
Implementasi fungsi soundbar CEC dan alokasi dinamis alamat logika 5 ada dalam framework Android. Framework mengalokasikan alamat logis saat setelan soundbar diaktifkan, agar perangkat menjadi soundbar secara dinamis. Jika setelan soundbar dinonaktifkan, framework akan mengalokasikan ulang alamat logis.
Berdasarkan input pengguna di UI Sistem, HdmiControlManager
menetapkan CEC_SETTING_NAME_SOUNDBAR_MODE
ke SOUNDBAR_MODE_ENABLED
atau
SOUNDBAR_MODE_DISABLED
. Nilai default CEC_SETTING_NAME_SOUNDBAR_MODE
ditetapkan ke SOUNDBAR_MODE_DISABLED
.
HdmiControlService
memproses perubahan pada setelan CEC_SETTING_NAME_SOUNDBAR_MODE
untuk melakukan hal berikut:
- Validasi apakah perangkat pemutaran lokal ada dan properti ARC didukung.
- Memicu alokasi alamat logis untuk menambahkan atau menghapus perangkat audio lokal.
- Pastikan status setelan dipertahankan, jika perangkat di-hotplug.
Lihat contoh deklarasi berikut untuk menetapkan dan mendapatkan status mode soundbar:
/**
* 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() {}
Implementasi OEM
Untuk mendukung fitur soundbar dinamis, OEM harus memastikan bahwa hardware mendukungnya. OEM harus mengonfigurasi perangkat dan menerapkan UI Sistem untuk menyediakan antarmuka yang diperlukan bagi input pengguna.
Implementasi perangkat
Untuk mendukung fitur soundbar di perangkat:
- Menampilkan perangkat pemutaran di Android 14.
- Terapkan port HDMI ARC di driver.
Biarkan nilai RRO
config_cecSoundbarModeEnabled_default
danconfig_cecSoundbarModeDisabled_default
tidak berubah diconfig.xml
sehingga fitur tetap dinonaktifkan secara default.Pastikan perangkat memiliki speaker bawaan atau terhubung untuk memutar audio, dan edit konfigurasi kebijakan audio.
Tetapkan properti sistem
persist.sys.hdmi.property_arc_support
ketrue
, untuk menunjukkan bahwa ARC didukung.Ekspos setelan untuk mengalihkan mode soundbar di UI Sistem.
Untuk proses debug, gunakan perintah
adb
berikut untuk mengaktifkan atau menonaktifkan fitur soundbar (1
untuk aktif dan0
untuk nonaktif):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Implementasi SysUI
Bagian ini menjelaskan alur UI tiruan yang direkomendasikan untuk mengaktifkan dan menonaktifkan DSM. Setelan Output audio berada di menu Tampilan & Suara, seperti yang ditunjukkan pada gambar 1:
Gambar 1. Setelan output audio di menu Tampilan & Suara.
Agar DSM berfungsi, setelan Aktifkan HDMI-CEC harus diaktifkan. Setelan ARC hanya dapat diaktifkan jika HDMI-CEC diaktifkan. Setelan ARC tidak tersedia dan dinonaktifkan jika HDMI-CEC dinonaktifkan seperti yang ditunjukkan pada gambar 2. Dalam alur UI berikut, saat pengguna menonaktifkan setelan Enable HDMI-CEC di menu Display & Sound dan memilih Home Speaker, setelan ARC dinonaktifkan. Pengguna dapat mengaktifkan setelan Putar audio televisi dengan mengaktifkan Aktifkan HDMI-CEC.
Gambar 2. UI untuk opsi ARC yang dinonaktifkan.
Jika setelan HDMI-CEC diaktifkan, pengguna dapat menggunakan setelan ARC di bagian Audio output untuk mengaktifkan dan menonaktifkan DSM. Untuk mengaktifkan DSM, pengguna mengikuti alur UI pada gambar 3. Dalam alur UI berikut, untuk mengaktifkan mode soundbar, pengguna memilih Home Speaker, lalu memilih dan mengonfirmasi setelan ARC. Untuk menonaktifkan DSM, pengguna menonaktifkan setelan ARC.
Gambar 3. UI untuk mengaktifkan DSM.
Validasi
OEM dapat melakukan pengujian audio untuk memastikan bahwa speaker perangkat pemutaran memutar suara yang berasal dari TV, atau dari perangkat lain yang terhubung ke panel TV.
Validasi manual
Gunakan skenario berikut untuk memvalidasi perilaku yang diharapkan secara manual:
- Setelan ARC diaktifkan:
- TV membisukan suaranya sendiri.
- Suara TV dirutekan ke speaker perangkat.
- Setelan ARC dinonaktifkan:
- TV berhenti merutekan audio ke perangkat.
- TV mulai memutar audio.
- Setelan ARC diaktifkan dan perangkat terhubung ke port non-ARC
ke TV:
- Perangkat tidak memutar suara TV.
- Setelan ARC diaktifkan dan alamat logis 5 digunakan oleh perangkat
lain sebelum perangkat terhubung:
- Perangkat berperilaku seperti perangkat pemutaran murni, bukan soundbar.
- Setelan ARC diaktifkan, alamat logis 5 digunakan oleh perangkat, dan
sistem audio lain terhubung di jaringan:
- Tidak ada perubahan pada perilaku soundbar perangkat.
- Setelan ARC diaktifkan, alamat logis 5 digunakan oleh perangkat
yang terhubung ke port non-ARC, dan sistem audio lain terhubung ke
port ARC:
- Koneksi ARC tidak dibuat dengan TV untuk sistem audio kedua karena menggunakan alamat logis yang tidak terdaftar.
- Setelan ARC diaktifkan, dan perangkat di-hotplug:
- Perangkat mengikuti perilaku normal seperti saat setelan diaktifkan.
Validasi CTS
CtsHdmiCecHostTestCases
harus lulus saat setelan soundbar dinonaktifkan. Pengujian HdmiCecSoundbarModeTest.java
dalam rangkaian pengujian CtsHdmiCecHostTestCases
, menguji fungsi DSM.
Meskipun bukan persyaratan sertifikasi, jalankan CtsHdmiCecHostTestCases
dengan
setelan soundbar diaktifkan untuk memvalidasi penerapan Anda.
Lihat Pengujian CTS CEC untuk perangkat Android TV untuk menjalankan pengujian CTS Android untuk HDMI CEC.