Android Automotive OS (AAOS), bir araçta bilgi-eğlence sistemi olarak çalışmayla ilgili kullanım alanlarını desteklemek için temel Android ses yığınını temel alır. AAOS, bilgi-eğlence seslerinden (medya, navigasyon ve iletişim) sorumludur ancak katı kullanılabilirlik ve zamanlama koşullarına sahip zil sesleri ve uyarılardan doğrudan sorumlu değildir.
AAOS, aracın sesi yönetmesine yardımcı olacak sinyaller ve mekanizmalar sağlar. Sürücünün ve yolcuların duyacağı sesleri belirleme kararı ise araçtadır. Bu sayede, güvenlik açısından kritik sesler ve yönetmeliklere uygun sesler kesintisiz olarak duyulur.
AAOS, Android ses paketinden yararlandığından ses çalan üçüncü taraf uygulamaların telefonlarda yaptıklarından farklı bir şey yapması gerekmez. Uygulamanın ses yönlendirmesi, Ses politikası yapılandırması bölümünde açıklandığı gibi AAOS tarafından otomatik olarak yönetilir.
Android, aracın medya deneyimini yönettiğinden radyo tuner gibi harici medya kaynakları, kaynak için ses odağını ve medya anahtar etkinliklerini yönetebilen uygulamalarla temsil edilmelidir.
Android sesleri ve akışları
Otomotiv ses sistemleri aşağıdaki sesleri ve akışları işler:
Şekil 1. Akış merkezli mimari diyagramı.
Android, Android uygulamalarından gelen sesleri yönetir, bu uygulamaları kontrol eder ve seslerin türünü temel alarak sesleri HAL'deki çıkış cihazlarına yönlendirir:
Temel ses terminolojisinde kaynaklar olarak bilinen mantıksal akışlar, ses özellikleri ile etiketlenir.
Temel ses terminolojisinde cihaz olarak bilinen fiziksel akışlar, karıştırma işleminden sonra bağlam bilgisi içermez.
Güvenilirlik için harici sesler (emniyet kemeri uyarı zilleri gibi bağımsız kaynaklardan gelen sesler) Android'in dışında, HAL'in altında veya hatta ayrı bir donanımda yönetilir. Sistem uygulayıcıları, Android'den bir veya daha fazla ses girişi akışı kabul eden ve ardından bu akışları aracın gerektirdiği harici ses kaynaklarıyla uygun bir şekilde birleştiren bir karıştırıcı sağlamalıdır. Android Control HAL, Android dışında oluşturulan seslerin Android ile iletişim kurması için farklı bir mekanizma sağlar:
- Ses odağı isteği
- Kazanç veya ses düzeyi sınırlamaları
- Kazanç ve ses seviyesi değişiklikleri
Güvenlik açısından kritik olan harici seslerin duyulmasını sağlamanın yanı sıra Android tarafından sağlanan akışları karıştırıp uygun hoparlörlere yönlendirmekten ses HAL uygulaması ve harici karıştırıcı sorumludur.
Android sesleri
Uygulamalarda, bir veya daha fazla mantıksal ses verisi akışı yayınlamak için standart Android API'leri (ör. odaklanma kontrolü için AudioManager veya akış için MediaPlayer) aracılığıyla etkileşime geçen bir veya daha fazla oynatıcı olabilir. Bu veriler tek kanallı mono veya 7.1 surround olabilir ancak tek bir kaynak olarak yönlendirilir ve işlenir. Uygulama akışı, sisteme sesin nasıl ifade edilmesi gerektiğiyle ilgili ipuçları veren AudioAttributes ile ilişkilendirilir.
Mantıksal akışlar AudioService üzerinden gönderilir ve mevcut fiziksel çıkış akışlarından birine (ve yalnızca birine) yönlendirilir. Bunların her biri, AudioFlinger içindeki bir mikserin çıkışıdır. Ses özellikleri fiziksel bir akışa karıştırıldıktan sonra artık kullanılamaz.
Ardından her fiziksel akış, donanımda oluşturma işlemi için Audio HAL'e gönderilir. Otomotiv uygulamalarında, oluşturma donanımı yerel codec'ler (mobil cihazlara benzer) veya aracın fiziksel ağındaki bir uzak işlemci olabilir. Her iki durumda da gerçek örnek verileri yayınlamak ve sesli hale getirmek Audio HAL uygulamasının işidir.
Harici akışlar
Android üzerinden yönlendirilmemesi gereken ses akışları (sertifika veya zamanlama nedeniyle) doğrudan harici miksere gönderilebilir. Android 11'den itibaren HAL, Android'i bilgilendirmek için bu harici sesler için odaklanmayı isteyebilir. Böylece Android, medyayı duraklatma veya diğer cihazların odaklanmasını engelleme gibi uygun işlemleri yapabilir.
Harici akışlar, Android'in oluşturduğu ses ortamıyla etkileşime geçmesi gereken medya kaynaklarıysa (ör. harici bir tuner açıldığında MP3 oynatmayı durdurma) bu harici akışlar bir Android uygulaması tarafından temsil edilmelidir. Bu tür bir uygulama, HAL yerine medya kaynağı adına ses odağını ister ve Android odak politikasına uymak için gerektiğinde harici kaynağı başlatıp durdurarak odak bildirimlerine yanıt verir.
Uygulama, oynatma ve duraklatma gibi medya önemli etkinlikleri yönetmekten de sorumludur. Bu tür harici cihazları kontrol etmek için önerilen mekanizmalardan biri de HwAudioSource
şeklindedir. Daha fazla bilgi için AAOS'te giriş cihazı bağlama başlıklı makaleyi inceleyin.
Çıkış cihazları
Ses HAL düzeyinde AUDIO_DEVICE_OUT_BUS
cihaz türü, araç ses sistemlerinde kullanılmak üzere genel bir çıkış cihazı sağlar. Otobüs cihazı, adreslenebilir bağlantı noktalarını (her bağlantı noktasının fiziksel bir akış için bitiş noktası olduğu) destekler ve bir araçta desteklenen tek çıkış cihazı türü olması beklenir.
Bir sistem uygulaması, tüm Android sesleri için tek bir otobüs bağlantı noktası kullanabilir. Bu durumda Android her şeyi birlikte karıştırır ve tek bir akış olarak sunar. Alternatif olarak, HAL, her ses türünün eşzamanlı olarak gönderilmesine olanak tanımak için her CarAudioContext için bir veri yolu bağlantı noktası sağlayabilir. Bu, HAL uygulamasının farklı sesleri istenen şekilde karıştırıp azaltmasına olanak tanır.
Ses bağlamlarının çıkış cihazlarına atanması car_audio_configuration.xml
dosyası aracılığıyla yapılır. Daha fazla bilgi edinmek için Ses politikası yapılandırması başlıklı makaleyi inceleyin.