Mode soundbar dinamis

Dengan dukungan framework Android 14, dekoder (STB) dan perangkat over-the-top (OTT) dengan speaker bawaan atau yang terhubung dapat dikonfigurasikan sebagai soundbar untuk perangkat terhubung. Mode soundbar dinamis (DSM) di Android 14 mendukung konsumen HDMI atribut kontrol elektronik (CEC) untuk soundbar, seperti saluran pengembalian audio (ARC) dan kontrol audio sistem.

Fitur ini hanya menargetkan perangkat pemutaran CEC Android TV.

Persyaratan

Untuk mengadopsi fitur soundbar, OEM harus memenuhi UI Sistem dan perangkat persyaratan yang tercantum di bagian ini.

Persyaratan perangkat

Untuk mendukung DSM, perangkat STB/OTT harus memenuhi persyaratan berikut:

  • Perangkat harus menjalankan Android 14.
  • Saat DSM diaktifkan, perangkat harus berperilaku seperti soundbar setelah mengikuti Spesifikasi HDMI CEC, seperti ARC.
  • Perangkat harus dapat memutar suara yang ada di dalamnya atau terhubung speaker.
  • 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 Channel Return Audio (ARC).
  • UI harus memberi tahu pengguna untuk menghubungkan perangkat ke port ARC TV untuk menyambung koneksi ARC.
  • UI harus memberi tahu pengguna bahwa fitur tersebut mungkin tidak berfungsi seperti yang diharapkan jika soundbar atau penerima audio/video (AVR) lain tersambung di saluran jaringan.
  • UI harus memberi tahu pengguna bahwa layar mungkin berkedip saat mengalihkan deskripsi tempat.
  • Jika perangkat tidak memiliki speaker bawaan, DSM harus dinonaktifkan secara default.

Praktik terbaik: Sebaiknya gunakan antarmuka Menu suara sebagai lokasi untuk setelan pengguna guna mengaktifkan atau menonaktifkan ARC, seperti yang ditunjukkan di Penerapan SysUI.

Implementasi framework

Implementasi fungsi soundbar CEC dan alokasi dinamis dari alamat logis 5 ada dalam kerangka kerja Android. Kerangka kerja ini mengalokasikan alamat logis saat setelan soundbar diaktifkan, agar perangkat menjadi soundbar secara dinamis. Jika setelan soundbar dinonaktifkan, membatalkan alokasi 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 disetel ke SOUNDBAR_MODE_DISABLED.

HdmiControlService memproses perubahan di CEC_SETTING_NAME_SOUNDBAR_MODE untuk melakukan hal berikut:

  • Validasi apakah ada perangkat pemutaran lokal dan properti ARC adalah didukung.
  • Picu alokasi alamat logis untuk menambahkan atau menghapus perangkat audio lokal.
  • Pastikan status setelan dipertahankan, jika perangkat dicolokkan ke sumber listrik.

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.
     *
     * <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() {}

Penerapan 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. Tampilkan perangkat pemutaran di Android 14.
  2. Terapkan port ARC HDMI di driver.
  3. Biarkan nilai RRO config_cecSoundbarModeEnabled_default dan config_cecSoundbarModeDisabled_default tidak berubah di config.xml sehingga fitur tersebut tetap dinonaktifkan secara {i>default<i}.

  4. Pastikan bahwa perangkat memiliki fitur bawaan atau speaker yang terhubung untuk memutar audio, dan mengedit konfigurasi kebijakan audio.

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

  6. Ekspos setelan untuk mengaktifkan/menonaktifkan mode soundbar di UI Sistem.

Untuk proses debug, gunakan perintah adb berikut untuk mengaktifkan fitur soundbar atau nonaktif (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 bagian Display & Menu suara, seperti yang ditunjukkan pada gambar 1:

output_audio_dsm

Gambar 1. Setelan output audio di bagian Display & Menu suara.

Agar DSM berfungsi, setelan Enable HDMI-CEC harus diaktifkan. Tujuan Setelan ARC dapat diaktifkan hanya jika HDMI-CEC diaktifkan. Setelan ARC berwarna abu-abu dan dinonaktifkan jika HDMI-CEC dinonaktifkan seperti yang ditunjukkan pada gambar 2. Di kolom mengikuti alur UI, saat pengguna menonaktifkan setelan Enable HDMI-CEC di situs Display & Menu Suara, lalu memilih Speaker Rumah, setelan ARC dinonaktifkan. Pengguna dapat mengaktifkan setelan Putar audio televisi dengan mengaktifkan Enable HDMI-CEC.

{i>dsm_ui_disable_arc<i}

Gambar 2. UI untuk opsi ARC yang dinonaktifkan.

Jika setelan HDMI-CEC diaktifkan, pengguna dapat menggunakan setelan ARC di bagian Output audio untuk mengaktifkan dan menonaktifkan DSM. Untuk mengaktifkan DSM, pengguna harus mengikuti UI di gambar 3. Dalam alur UI berikut, untuk mengaktifkan mode soundbar, pengguna memilih Speaker Rumah, lalu memilih dan mengonfirmasi setelan ARC. Untuk mengubah pengguna menonaktifkan DSM, pengguna akan 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 TV .

Validasi manual

Gunakan skenario berikut untuk memvalidasi perilaku yang diharapkan secara manual:

  • Setelan ARC diaktifkan:
    • TV akan membisukan audionya sendiri.
    • Suara TV dialihkan ke speaker perangkat.
  • Setelan ARC dinonaktifkan:
    • TV akan berhenti mengarahkan audio ke perangkat.
    • TV mulai memutar audio.
  • Setelan ARC diaktifkan dan perangkat terhubung ke non-ARC port ke TV:
    • Perangkat tidak memutar suara TV.
  • Setelan ARC diaktifkan dan alamat logis 5 sedang digunakan oleh sebelum terhubung:
    • Perangkat berperilaku seperti perangkat pemutaran murni, bukan soundbar.
  • Setelan ARC diaktifkan, alamat logis 5 digunakan oleh perangkat, dan ada sistem audio lain yang terhubung ke jaringan:
    • Perilaku soundbar perangkat tidak berubah.
  • Setelan ARC diaktifkan, alamat logis 5 digunakan oleh perangkat ke porta non-ARC, dan sistem audio lain tersambung ke Port ARC:
    • Koneksi ARC tidak dibuat dengan TV untuk audio kedua karena menggunakan alamat logis yang tidak terdaftar.
  • Setelan ARC diaktifkan dan perangkat dicolokkan ke sumber listrik:
    • Perangkat mengikuti perilaku normal seperti saat setelan diaktifkan.

Validasi CTS

CtsHdmiCecHostTestCases diperlukan agar lulus jika setelan soundbar dinonaktifkan. HdmiCecSoundbarModeTest.java uji di rangkaian pengujian CtsHdmiCecHostTestCases, menguji fungsi DSM.

Meskipun bukan persyaratan sertifikasi, jalankan CtsHdmiCecHostTestCases dengan setelan soundbar diaktifkan untuk memvalidasi penerapan.

Lihat Pengujian CTS CEC untuk perangkat Android TV untuk menjalankan tes Android CTS untuk HDMI CEC.