Flag AAOS konfigurasi audio

Android Automotive OS (AAOS) menggunakan flag dan konfigurasi untuk mengaktifkan berbagai fitur, mulai dari pemilihan rute dinamis hingga flag fitur yang lebih umum, seperti kontrol volume dari layanan mobil. Flag konfigurasi AAOS saat ini untuk pengelolaan audio dijelaskan di sini.

Flag Tujuan
audioUseDynamicRouting Ditentukan dalam file konfigurasi layanan mobil untuk Mengaktifkan pemilihan rute AAOS. Konfigurasi harus ditetapkan ke true. Jika false, pemilihan rute dan sebagian besar CarAudioService dinonaktifkan dan OS kembali ke perilaku default yang dijelaskan dalam Mengonfigurasi kebijakan audio.
useCoreAudioRouting Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan pengelolaan pemilihan rute audio inti AAOS. Jika nilainya ditetapkan ke true, layanan audio mobil akan menggunakan definisi konfigurasi yang disiapkan dengan mesin kebijakan audio yang dapat dikonfigurasi. Jika nilainya ditetapkan ke false, pengelolaan pemilihan rute akan kembali menggunakan definisi campuran kebijakan audio dinamis layanan audio mobil seperti yang dikonfigurasi menggunakan audioUseDynamicRouting.
useCoreAudioVolume Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan pengelolaan volume audio inti AAOS. Jika nilainya ditetapkan ke true, layanan audio mobil akan menggunakan definisi grup volume yang disiapkan dengan mesin kebijakan audio yang dapat dikonfigurasi. Jika nilainya ditetapkan ke false, pengelolaan volume akan kembali menggunakan definisi grup volume default layanan audio mobil seperti yang dikonfigurasi menggunakan audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan pembisuan grup volume individual volume. Jika ditetapkan ke false (nilai default), pembisuan grup volume individual akan dinonaktifkan. Sebagai gantinya, pembisuan akan mengaktifkan/menonaktifkan pembisuan utama. Jika ditetapkan ke true, pembisuan grup volume mobil akan diaktifkan dan setiap grup volume individual dapat dibisukan secara terpisah. Jika true, pembisuan grup volume harus diterapkan di HAL Kontrol Audio.
audioUseHalDuckingSignals Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan IAudioControl#onDevicesToDuckChange API guna memberi tahu HAL kapan harus meredam. Jika true (nilai default), API akan menerima sinyal yang menunjukkan perangkat output mana yang akan direduksi dan penggunaan mana yang memiliki fokus. Jika false, API tidak akan dipanggil. API tidak akan dipanggil kecuali HAL Kontrol Audio menerapkan peredaman.
config_oemCarService Ditentukan dalam file konfigurasi layanan mobil, ini adalah nama komponen untuk layanan penyesuaian OEM. OEM dapat memilih untuk menerapkan layanan ini guna menyesuaikan tindakan layanan mobil untuk kebijakan yang berbeda. Jika OEM memilih untuk menerapkan komponen ini, mereka harus menerapkan layanan untuk memperluas OemCarService yang diekspos oleh car-lib, lalu menerapkan layanan komponen yang diperlukan. Khusus untuk layanan audio mobil, OEM dapat menerapkan salah satu sub-layanan audio untuk mengelola tindakan audio. Untuk mengetahui detailnya, lihat Layanan Plugin Audio Mobil. Jika nama komponen tidak valid, CarService tidak akan terhubung ke layanan OEM mana pun. Nama komponen tidak boleh berupa paket pihak ketiga. Nama komponen harus diinstal sebelumnya.
audioVolumeAdjustmentContextsVersion

Ditentukan dalam file konfigurasi layanan mobil, konfigurasi untuk memilih versi daftar prioritas konteks penyesuaian volume.

Versi 1 mencakup semua konteks audio, dalam urutan ini:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

Versi 2 terbatas pada konteks berikut, dalam urutan ini.

Versi default-nya adalah 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Ditentukan dalam file konfigurasi layanan mobil, konfigurasi untuk mempertahankan status bisu global. Jika true (nilai default), Android akan memulihkan status bisu global saat booting. Jika audioUseCarVolumeGroupMuting adalah true, hal ini tidak akan memengaruhi perubahan bisu yang dipertahankan karena perubahan bisu didasarkan pada grup volume individual. Nilai default ditetapkan ke true dan harus ditimpa jika pembisuan utama tidak boleh dipertahankan untuk perangkat.
audioVolumeKeyEventTimeoutMs

Ditentukan dalam file konfigurasi layanan mobil, konfigurasi untuk menunjukkan waktu tunggu dalam milidetik saat grup volume mobil dianggap aktif untuk perubahan kontrol volume selama peristiwa tombol volume. Konfigurasi ini digunakan sebagai berikut:

  • Waktu tunggu digunakan untuk menentukan apakah pemutaran (volume audio yang terkait dengan penggunaan audio pemutaran) masih dapat dipertimbangkan untuk pemilihan volume otomatis setelah berhenti diputar.
  • Waktu tunggu juga digunakan sebagai durasi jeda yang diperlukan antara penyesuaian volume otomatis untuk mengubah apa yang disesuaikan pengguna.

Nilai default-nya adalah 3000 milidetik dan harus disesuaikan oleh OEM untuk menyesuaikan pengalaman pengguna.

audioUseCarVolumeGroupEvent Ditentukan dalam file konfigurasi layanan mobil, konfigurasi untuk mengaktifkan peristiwa callback ke grup volume. Jika true, klien akan menerima callback melalui ICarVolumeGroupEvent ke peristiwa yang memengaruhi grup volume. Jika diaktifkan:
  • Sebaiknya vendor juga mendukung IAudioControl#setModuleChangeCallback dan IAudioControl#registerGainCallback untuk peristiwa dan perubahan pada hardware audio.
  • Jika CarVolumeCallback dan CarVolumeGroupEventCallback didaftarkan oleh aplikasi yang sama, indeks grup volume dan callback bisu grup volume hanya akan melalui CarVolumeGroupEventCallback saja. Oleh karena itu, sebaiknya semua aplikasi bermigrasi ke antarmuka callback baru untuk memastikan performa yang konsisten.
  • Nilai default-nya adalah false. Sebaiknya tetapkan nilai ini ke true karena API untuk mendukung callback volume lama tidak digunakan lagi dan akan segera dihapus sepenuhnya.

config_useFixedVolume Ditentukan dalam frameworks/base/core/res/res/values/config.xml. Harus ditetapkan ke true agar layanan audio mobil dapat mengelola kontrol volume. Jika flag config_useFixedVolume tidak ditetapkan, atau ditetapkan ke false (nilai default), aplikasi dapat memanggil AudioManager API pengelolaan volume dan mengubah volume berdasarkan jenis aliran di mixer software. Hal ini mungkin tidak diinginkan karena potensi efek pada aplikasi lain dan fakta bahwa atenuasi volume di mixer software dapat menghasilkan lebih sedikit bit signifikan yang tersedia dalam sinyal saat diterima di amplifier hardware. Perangkat baru yang belum dikonfigurasi dan ditetapkan ke true menerima perubahan volume melalui AudioManager API volume dan bisu.
config_handleVolumeKeysInWindowManager Ditentukan dalam frameworks/base/core/res/res/values/config.xml, harus ditetapkan ke true agar layanan audio mobil dapat mencegat peristiwa tombol volume. Jika ditetapkan ke false (nilai default), peristiwa tombol volume dapat diteruskan ke aplikasi latar depan dan dapat menyebabkan hasil yang tidak diinginkan dari pengelolaan peristiwa tombol volume di luar layanan audio mobil.
audioUseMinMaxActivationVolume Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan volume aktivasi minimum dan maksimum. Jika true, indeks perolehan volume dapat disesuaikan karena pengelolaan volume aktivasi minimum dan maksimum. Jika false (nilai default), volume aktivasi minimum dan maksimum tidak akan berlaku.
audioUseFadeManagerConfiguration Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan perilaku kehilangan fokus audio yang diterapkan sistem. Jika true, framework audio mobil akan mengurai definisi konfigurasi fade audio mobil dan menerapkan FadeManagerConfiguration masing-masing saat mengirim kehilangan fokus audio. Jika false (nilai default), sistem tidak akan menerapkan perilaku fade saat aplikasi kehilangan fokus audio.

Konfigurasi layanan audio mobil

Sebelum Android 13, konfigurasi layanan mobil ditimpa dengan overlay konfigurasi produk (untuk mempelajari lebih lanjut, lihat Menyesuaikan build dengan overlay resource) untuk file packages/services/Car/service/res/values/config.xml.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

Lokasi file konfigurasi dari <path_to_overlay> ke lokasi sebenarnya harus menyertakan packages/services/Car/service/res/values/.

RRO layanan mobil

Sejak Android 13, AAOS mendukung overlay resource Runtime. Gunakan RRO untuk mengubah nilai konfigurasi audio mobil. Misalnya, lihat RRO untuk referensi otomotif cuttlefish di device/google/cuttlefish/shared/auto/rro_overlay/. Konfigurasi audioUseDynamicRouting diganti di device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

Peta overlay resource terdapat di device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

Manifes overlay resource yang ditentukan di device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml berisi targetPackage yang ditetapkan sebagai com.android.car.updatable.

Lihat referensi berikut untuk mengetahui informasi selengkapnya:

API yang mengaktifkan fitur

Metode ini menampilkan true jika fitur diaktifkan di perangkat, atau false. Di CarAudioManager#isAudioFeatureEnabled API, parameter yang diteruskan harus salah satu dari:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING