Ringkasan

Android Automotive OS (AAOS) dibangun di atas tumpukan audio Android inti untuk mendukung kasus penggunaan pengoperasian sebagai sistem infotainment di dalam kendaraan. AAOS bertanggung jawab atas suara infotainment (yaitu media, navigasi, dan komunikasi) namun tidak secara langsung bertanggung jawab atas bunyi lonceng dan peringatan yang memiliki persyaratan ketersediaan dan waktu yang ketat.

Meskipun AAOS memberikan sinyal dan mekanisme untuk membantu kendaraan mengatur audio, pada akhirnya kendaraanlah yang menentukan suara apa yang harus dimainkan untuk pengemudi dan penumpang, memastikan suara penting keselamatan dan suara peraturan terdengar dengan baik tanpa gangguan.

Karena AAOS memanfaatkan tumpukan audio Android, aplikasi pihak ketiga yang memutar audio tidak perlu melakukan hal berbeda dibandingkan di ponsel. Perutean audio aplikasi secara otomatis dikelola oleh AAOS seperti yang dijelaskan dalam Konfigurasi kebijakan audio .

Saat Android mengelola pengalaman media kendaraan, sumber media eksternal seperti radio tuner harus diwakili oleh aplikasi, yang dapat menangani fokus audio dan peristiwa media penting untuk sumber tersebut.

Suara dan streaming Android

Sistem audio otomotif menangani suara dan aliran berikut:

image

Gambar 1. Diagram arsitektur aliran-sentris.

Android mengelola suara yang berasal dari aplikasi Android, mengontrol aplikasi tersebut, dan merutekan suaranya ke perangkat output di HAL berdasarkan jenis suara:

  • Aliran logis , yang dikenal sebagai sumber dalam tata nama audio inti, ditandai dengan atribut Audio .

  • Aliran fisik , yang dikenal sebagai perangkat dalam tata nama audio inti, tidak memiliki informasi konteks setelah pencampuran.

Untuk keandalan, suara eksternal (berasal dari sumber independen, seperti lonceng peringatan sabuk pengaman) dikelola di luar Android, di bawah HAL, atau bahkan di perangkat keras terpisah. Pelaksana sistem harus menyediakan mixer yang menerima satu atau lebih aliran input suara dari Android dan kemudian menggabungkan aliran tersebut dengan cara yang sesuai dengan sumber suara eksternal yang dibutuhkan oleh kendaraan. Android Control HAL menyediakan mekanisme berbeda agar suara yang dihasilkan di luar Android dapat dikomunikasikan kembali ke Android:

  • Permintaan fokus audio
  • Batasan penguatan atau volume
  • Penguatan dan perubahan volume

Implementasi audio HAL dan mixer eksternal bertanggung jawab untuk memastikan suara eksternal yang penting bagi keselamatan terdengar dan untuk mencampur aliran yang disediakan Android dan mengarahkannya ke speaker yang sesuai.

suara Android

Aplikasi mungkin memiliki satu atau beberapa pemutar yang berinteraksi melalui API Android standar (misalnya, AudioManager untuk kontrol fokus atau MediaPlayer untuk streaming) untuk memancarkan satu atau beberapa aliran data audio yang logis. Data ini dapat berupa saluran tunggal mono atau 7.1 surround, namun disalurkan dan diperlakukan sebagai sumber tunggal. Aliran aplikasi dikaitkan dengan AudioAttributes yang memberikan petunjuk kepada sistem tentang bagaimana audio harus diungkapkan.

Aliran logis dikirim melalui AudioService dan dirutekan ke satu (dan hanya satu) aliran keluaran fisik yang tersedia, yang masing-masing merupakan keluaran mixer dalam AudioFlinger. Setelah atribut audio digabungkan ke aliran fisik, atribut tersebut tidak lagi tersedia.

Setiap aliran fisik kemudian dikirimkan ke Audio HAL untuk dirender pada perangkat keras. Dalam aplikasi otomotif, rendering perangkat keras dapat berupa codec lokal (mirip dengan perangkat seluler) atau prosesor jarak jauh di seluruh jaringan fisik kendaraan. Apa pun yang terjadi, tugas implementasi Audio HAL adalah mengirimkan data sampel aktual dan membuatnya dapat didengar.

Aliran eksternal

Aliran suara yang tidak boleh dirutekan melalui Android (untuk alasan sertifikasi atau pengaturan waktu) dapat dikirim langsung ke mixer eksternal. Mulai Android 11, HAL kini dapat meminta fokus untuk suara eksternal ini guna memberi tahu Android agar dapat mengambil tindakan yang tepat seperti menjeda media atau mencegah orang lain mendapatkan fokus.

Jika streaming eksternal merupakan sumber media yang harus berinteraksi dengan lingkungan suara yang dihasilkan Android (misalnya, menghentikan pemutaran MP3 saat tuner eksternal diaktifkan), streaming eksternal tersebut harus diwakili oleh aplikasi Android. Aplikasi semacam itu akan meminta fokus Audio atas nama sumber media, bukan HAL, dan akan merespons notifikasi fokus dengan memulai dan menghentikan sumber eksternal jika diperlukan agar sesuai dengan kebijakan fokus Android.

Aplikasi ini juga bertanggung jawab untuk menangani peristiwa penting media seperti putar dan jeda. Salah satu mekanisme yang disarankan untuk mengontrol perangkat eksternal tersebut adalah HwAudioSource . Untuk mempelajari lebih lanjut, lihat Menghubungkan perangkat input di AAOS .

Perangkat keluaran

Pada tingkat Audio HAL, jenis perangkat AUDIO_DEVICE_OUT_BUS menyediakan perangkat keluaran umum untuk digunakan dalam sistem audio kendaraan. Perangkat bus mendukung port yang dapat dialamatkan (di mana setiap port adalah titik akhir untuk aliran fisik) dan diharapkan menjadi satu-satunya jenis perangkat keluaran yang didukung di kendaraan.

Implementasi sistem dapat menggunakan satu port bus untuk semua suara Android, dalam hal ini Android menggabungkan semuanya dan mengirimkannya sebagai satu aliran. Alternatifnya, HAL dapat menyediakan satu port bus untuk setiap CarAudioContext untuk memungkinkan pengiriman jenis suara apa pun secara bersamaan. Hal ini memungkinkan implementasi HAL untuk mencampur dan mengurangi suara yang berbeda sesuai keinginan.

Penetapan konteks audio ke perangkat keluaran dilakukan melalui file car_audio_configuration.xml . Untuk mempelajari lebih lanjut, lihat Konfigurasi kebijakan audio .