Ringkasan

Android Automotive OS (AAOS) dibuat berdasarkan stack audio Android inti untuk mendukung kasus penggunaan agar dapat beroperasi sebagai sistem infotainmen di kendaraan. AAOS bertanggung jawab atas suara infotainmen (yaitu media, navigasi, dan komunikasi), tetapi tidak bertanggung jawab secara langsung atas bunyi bel dan peringatan yang memiliki persyaratan ketersediaan dan pengaturan waktu yang ketat.

Meskipun AAOS memberikan sinyal dan mekanisme untuk membantu kendaraan mengelola audio, pada akhirnya kendaraan akan menentukan suara apa yang harus diputar oleh pengemudi dan penumpang, sehingga memastikan suara yang penting bagi keselamatan dan suara peraturan dapat didengar dengan baik tanpa gangguan.

Karena AAOS memanfaatkan stack audio Android, aplikasi pihak ketiga yang memutar audio tidak perlu melakukan hal yang berbeda dengan yang dilakukan di ponsel. Pemilihan rute audio aplikasi dikelola secara otomatis oleh AAOS seperti yang dijelaskan dalam Konfigurasi kebijakan audio.

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

Suara dan streaming Android

Sistem audio otomotif menangani suara dan streaming berikut:

gambar

Gambar 1. Diagram arsitektur yang berfokus pada aliran data.

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

  • Streaming logis, yang dikenal sebagai sumber dalam nomenklatur audio inti, diberi tag dengan Atribut audio.

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

Untuk keandalan, suara eksternal (berasal dari sumber independen, seperti bel peringatan sabuk pengaman) dikelola di luar Android, di bawah HAL atau bahkan di hardware terpisah. Implementator sistem harus menyediakan mixer yang menerima satu atau beberapa aliran input suara dari Android, lalu menggabungkan aliran tersebut dengan cara yang sesuai dengan sumber suara eksternal yang diperlukan oleh kendaraan. Android Control HAL menyediakan mekanisme yang berbeda untuk suara yang dihasilkan di luar Android agar dapat berkomunikasi kembali ke Android:

  • Permintaan fokus audio
  • Batasan gain atau volume
  • Perubahan gain dan volume

Implementasi HAL audio dan mixer eksternal bertanggung jawab untuk memastikan suara eksternal yang penting bagi keamanan terdengar dan untuk mencampur streaming yang disediakan Android dan merutekannya ke speaker yang sesuai.

Suara Android

Aplikasi mungkin memiliki satu atau beberapa pemutar yang berinteraksi melalui Android API standar (misalnya, AudioManager untuk kontrol fokus atau MediaPlayer untuk streaming) untuk menghasilkan satu atau beberapa aliran data audio logis. Data ini dapat berupa mono saluran tunggal atau surround 7.1, tetapi dirutekan dan diperlakukan sebagai sumber tunggal. Streaming aplikasi dikaitkan dengan AudioAttributes yang memberikan petunjuk sistem tentang cara audio harus diekspresikan.

Streaming logis dikirim melalui AudioService dan dirutekan ke satu (dan hanya satu) streaming output fisik yang tersedia, yang masing-masing merupakan output dari mixer dalam AudioFlinger. Setelah atribut audio dicampur ke streaming fisik, atribut tersebut tidak akan tersedia lagi.

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

Streaming eksternal

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

Jika streaming eksternal adalah sumber media yang harus berinteraksi dengan lingkungan bunyi yang dihasilkan Android (misalnya, menghentikan pemutaran MP3 saat tuner eksternal diaktifkan), streaming eksternal tersebut harus diwakili oleh aplikasi Android. Aplikasi tersebut akan meminta Fokus audio atas nama sumber media, bukan HAL, dan akan merespons notifikasi fokus dengan memulai dan menghentikan sumber eksternal sesuai kebutuhan agar sesuai dengan kebijakan fokus Android.

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

Perangkat output

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

Implementasi sistem dapat menggunakan satu port bus untuk semua suara Android, dengan hal ini Android akan menggabungkan semuanya dan mengirimkannya sebagai satu streaming. Atau, HAL dapat menyediakan satu port bus untuk setiap CarAudioContext untuk memungkinkan pengiriman serentak jenis suara apa pun. Hal ini memungkinkan implementasi HAL mencampur dan mengecilkan suara yang berbeda sesuai keinginan.

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