Mode soundbar dinamis

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:

  1. Menampilkan perangkat pemutaran di Android 14.
  2. Terapkan port HDMI ARC di driver.
  3. Biarkan nilai RRO config_cecSoundbarModeEnabled_default dan config_cecSoundbarModeDisabled_default tidak berubah di config.xml sehingga fitur tetap dinonaktifkan secara default.

  4. Pastikan perangkat memiliki speaker bawaan atau terhubung untuk memutar audio, dan edit konfigurasi kebijakan audio.

  5. Tetapkan properti sistem persist.sys.hdmi.property_arc_support ke true, untuk menunjukkan bahwa ARC didukung.

  6. Ekspos setelan untuk mengalihkan mode soundbar di UI Sistem.

  7. Untuk proses debug, gunakan perintah adb berikut untuk mengaktifkan atau menonaktifkan fitur soundbar (1 untuk aktif dan 0 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:

dsm_audio_output

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.

dsm_ui_disable_arc

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.

dsm_ui_enable_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.