Tanda 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 manajemen audio dijelaskan di sini.

Flag Tujuan
audioUseDynamicRouting Ditentukan dalam file konfigurasi layanan mobil untuk Mengaktifkan perutean AAOS. Konfigurasi harus ditetapkan ke true. Jika false, pemilihan rute, dan sebagian besar CarAudioService dinonaktifkan, OS akan kembali ke perilaku default yang dijelaskan dalam Mengonfigurasi kebijakan audio.
audioUseCarVolumeGroupMuting Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan bisukan setiap grup volume. Jika disetel ke false (nilai default), bisukan setiap grup volume akan dinonaktifkan. Sebagai gantinya, membisukan akan mengaktifkan bisukan master. Jika disetel ke true, bisukan grup volume mobil akan diaktifkan dan setiap grup volume dapat dibisukan secara terpisah. Jika true, pemutusan suara grup volume harus diterapkan di Audio Control HAL.
audioUseHalDuckingSignals Ditentukan dalam file konfigurasi layanan mobil untuk mengaktifkan IAudioControl#onDevicesToDuckChange API guna memberi tahu HAL kapan harus menunduk. Jika true (nilai default), API akan menerima sinyal yang menunjukkan perangkat output yang akan disembunyikan dan penggunaan yang mempertahankan fokus. Jika false, API tidak dipanggil. API tidak dipanggil kecuali jika Audio Control HAL menerapkan penurunan volume.
config_oemCarService Didefinisikan dalam file konfigurasi layanan mobil, ini adalah nama komponen untuk layanan penyesuaian OEM. OEM dapat memilih untuk menerapkan layanan ini guna menyesuaikan tindakan servis 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 sub-layanan audio apa pun untuk mengelola tindakan audio. Untuk mengetahui detailnya, lihat Layanan Plugin Audio Mobil. Jika nama komponen tidak valid, CarService tidak akan terhubung ke layanan OEM apa pun. Nama komponen tidak boleh berupa paket pihak ketiga. Aplikasi ini harus diprainstal.
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 dibatasi untuk 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 bisukan yang dipertahankan karena perubahan bisukan didasarkan pada setiap grup volume. Nilai default ditetapkan ke true dan harus ditimpa jika bisukan master tidak boleh dipertahankan untuk 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 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 di antara penyesuaian volume otomatis untuk mengubah apa yang disesuaikan 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 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 terdaftar oleh aplikasi yang sama, indeks grup volume dan callback bisukan grup volume 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 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 disetel ke true agar layanan audio mobil dapat mengelola kontrol volume. Jika tanda config_useFixedVolume tidak ditetapkan, atau ditetapkan ke false (nilai default), aplikasi dapat memanggil API pengelolaan volume AudioManager dan mengubah volume menurut jenis streaming 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 disetel ke true menerima perubahan volume melalui API volume dan bisukan AudioManager.
config_handleVolumeKeysInWindowManager Ditetapkan di frameworks/base/core/res/res/values/config.xml, harus disetel ke true untuk memungkinkan layanan audio mobil menahan 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.

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

RRO servis mobil

Sejak Android 13, AAOS mendukung Overlay resource runtime. Gunakan RRO untuk mengubah nilai konfigurasi audio mobil. Misalnya, lihat RRO untuk referensi cuttlefish otomotif 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 dalam 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 ini untuk mengetahui informasi selengkapnya:

API yang mengaktifkan fitur

Metode ini menampilkan true jika fitur diaktifkan di perangkat, jika tidak, 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