Tanda AAOS konfigurasi audio

Android Automotive OS (AAOS) menggunakan tanda dan konfigurasi untuk mengaktifkan berbagai mulai dari perutean dinamis ke tombol fitur yang lebih umum, seperti mengontrol volume dari servis mobil. Tanda konfigurasi AAOS saat ini untuk audio dijelaskan di sini.

Flag Tujuan
audioUseDynamicRouting Ditetapkan dalam file konfigurasi layanan mobil untuk Mengaktifkan pemilihan rute AAOS. Konfigurasi harus ditetapkan ke true. Saat false, dan sebagian besar dari CarAudioService, dinonaktifkan dan OS kembali ke perilaku {i> default<i} yang dijelaskan dalam Mengonfigurasi kebijakan audio.
audioUseCarVolumeGroupMuting Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan pembisuan individu kelompok volume. Jika ditetapkan ke false (nilai default), pembisuan kelompok volume individu dinonaktifkan. Sebagai gantinya, membisukan audio utama akan beralih ke mode bisukan utama. Jika disetel ke true, pembisuan grup volume mobil akan diaktifkan dan setiap kelompok volume tertentu dapat dibisukan secara terpisah. Saat true, pembisuan grup volume harus diterapkan pada Audio Control HAL.
audioUseHalDuckingSignals Didefinisikan dalam file konfigurasi layanan mobil untuk mengaktifkan IAudioControl#onDevicesToDuckChange API untuk memberi tahu HAL kapan harus bebek. Ketika true (nilai default), API menerima sinyal yang menunjukkan perangkat {i>output<i} ke pengecilan dan penggunaan apa yang memiliki fokus. Saat false, API tidak dipanggil. API tidak dipanggil kecuali jika HAL Kontrol Audio menerapkan pengecilan volume.
config_oemCarService Ditentukan dalam file konfigurasi layanan mobil, ini adalah nama komponen untuk layanan penyesuaian OEM. OEM dapat memilih untuk menerapkan layanan ini ke menyesuaikan tindakan layanan mobil untuk berbagai kebijakan. Jika OEM memilih untuk mengimplementasikan komponen ini, mereka harus mengimplementasikan layanan untuk memperluas OemCarService diekspos oleh car-lib, lalu terapkan layanan komponen yang diperlukan. Khusus untuk layanan audio mobil, OEM dapat menerapkan sub-layanan audio apa pun untuk mengelola tindakan audio. Sebagai detail, 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. Ini harus diinstal lebih dulu.
audioVolumeAdjustmentContextsVersion

Didefinisikan dalam file konfigurasi layanan mobil, konfigurasi untuk memilih versi dari 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

Dalam urutan ini, versi 2 dibatasi untuk konteks berikut.

Versi default-nya adalah 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Ditentukan dalam file konfigurasi layanan mobil, konfigurasi untuk mempertahankan global status bisu. Saat true (nilai default) Android akan memulihkan status bisukan global saat booting. Jika audioUseCarVolumeGroupMuting adalah true, hal ini tidak berdampak pada persistensi perubahan pembisuan perubahan didasarkan pada masing-masing kelompok volume. Nilai defaultnya ditetapkan ke true dan harus ditimpa saat master mute tidak boleh dipertahankan untuk suatu perangkat.
audioVolumeKeyEventTimeoutMs

Didefinisikan 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 digunakan sebagai berikut:

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

Nilai defaultnya adalah 3000 milidetik dan harus disesuaikan oleh OEM untuk menyesuaikan pengalaman pengguna.

audioUseCarVolumeGroupEvent Ditentukan dalam file konfigurasi layanan mobil, konfigurasi untuk mengaktifkan callback peristiwa ke grup volume. Saat true, klien menerima callback sampai ICarVolumeGroupEvent ke peristiwa yang memengaruhi volume grup. Jika diaktifkan:

  • Kami sangat menyarankan agar vendor juga mendukung IAudioControl#setModuleChangeCallback dan IAudioControl#registerGainCallback untuk peristiwa dan perubahan pada hardware audio.
  • Jika CarVolumeCallback dan CarVolumeGroupEventCallback didaftarkan oleh entitas yang sama aplikasi, indeks grup volume dan callback pembisuan grup volume akan digunakan hanya melalui CarVolumeGroupEventCallback. Oleh karena itu, sebaiknya semua aplikasi bermigrasi ke untuk memastikan performa yang konsisten.
  • Nilai default-nya adalah false. Sebaiknya tetapkan hal ini menjadi true karena API untuk mendukung volume lama callback tidak digunakan lagi dan akan segera dihapus sepenuhnya.

config_useFixedVolume Ditentukan dalam frameworks/base/core/res/res/values/config.xml. Harus disetel ke true agar layanan audio mobil dapat dikelola untuk mengontrol volume. Jika flag config_useFixedVolume tidak disetel, atau disetel ke false (nilai default), aplikasi dapat memanggil AudioManager API pengelolaan volume dan ubah volume sebesar jenis aliran data di mixer software. Hal ini mungkin tidak diinginkan karena efek potensial pada aplikasi lain dan fakta bahwa pelemahan volume pada mixer perangkat lunak dapat menghasilkan jumlah bit yang lebih sedikit dalam sinyal ketika diterima di penguat perangkat keras. Perangkat baru yang belum telah dikonfigurasi dan ditetapkan ke true untuk menerima perubahan volume melalui API volume AudioManager dan membisukan audio.
config_handleVolumeKeysInWindowManager Ditentukan dalam frameworks/base/core/res/res/values/config.xml, harus disetel ke true untuk memungkinkan layanan audio mobil mencegat peristiwa tombol volume. Jika ditetapkan ke volume false (nilai default) peristiwa utama dapat diteruskan ke aplikasi latar depan dan dapat hasil dari pengelolaan peristiwa utama volume di luar layanan audio mobil.

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 lokasi harus menyertakan packages/services/Car/service/res/values/.

RRO servis mobil

Mulai Android 13, AAOS mendukung Overlay resource runtime. Gunakan RRO untuk mengubah dari konfigurasi audio mobil. Misalnya, lihat RRO untuk referensi cuttlefish otomotif dalam device/google/cuttlefish/shared/auto/rro_overlay/. Tujuan Konfigurasi audioUseDynamicRouting diganti di device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

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

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

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

Manifes overlay sumber daya yang didefinisikan dalam device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml berisi targetPackage yang ditetapkan sebagai com.android.car.updatable.

Lihat sumber daya ini untuk informasi lebih lanjut:

API yang mengaktifkan fitur

Metode ini akan menampilkan true jika fitur diaktifkan pada perangkat, jika tidak false. Di CarAudioManager#isAudioFeatureEnabled API, parameter lulus 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