Android 10 sürümü, yüksek çözünürlüklü ses için aşağıdaki iyileştirmeleri içerir:
- Float: WAV, FLAC codec'leri ve ayıklayıcıları, float'ı (24'ten fazla bit kayıpsız hassasiyet) destekleyecek şekilde güncellendi. Downmix ve Virtualizer efektleri, kayan nokta olarak güncellendi. Güncellenen hassasiyete MediaPlayer (NuPlayer) tarafından izin verilir.
- Yüksek frekans: WAV ve FLAC codec'leri ile ayıklayıcılar, 192 kHz'i destekleyecek şekilde güncellendi. Varsayılan olarak sağlanan Android efektleri, standart frekanslarda 192 kHz desteği için test edilir. İzin verilen standart frekanslar 88,2 kHz, 96 kHz, 176,4 kHz ve 192 kHz'dir.
- Çok kanallı: Varsayılan Android oynatma efektleri, sekiz kanala kadar çok kanallı destek için test edilir.
- Zamanlama: Zamanlama bilgileri, ses çerçevesinin tamamında yer alır.
Android 9'dan itibaren aşağıdaki iyileştirmeler için iş ortağı uygulaması gerekmez:
AudioTrack
'nın sınırlı istemci örnekleri Android 8.x'teki uygulamalar için sorun oluşturduğundan eşzamanlı istemci çıkışı parçalarının sayısı 14'ten 40'a yükseltildi.- Daha fazla sayıda eşzamanlı yüksek çözünürlüklü ses parçasına izin vermek için maksimum istemci/sunucu belleği 4 MB'tan 32 MB'a (toplam cihaz belleğine bağlı olarak) yükseltildi.
- Uygulamalar ve sistem kullanıcı arayüzü arasında kaynak çekişmesini önlemek için toplam karışık parça sayısı 32'den 256'ya çıkarıldı.
Çıkış efekti değişiklikleri
Android 11 sürümündeki değişiklikler için Ses efektleri'ne bakın.
Android 9 sürümünden önce efekt zinciri işleme, stereo int16 örnek biçiminde uygulanıyordu. Bu durumun çeşitli sınırlamaları vardı:
- Tüm çıkış efektleri, kayan noktalı ses verilerinden int16'ya zorunlu dönüştürme yaparak hassasiyet kaybına neden oluyordu.
- Çıkış efektleri, kanal sayısı ikiden fazla olan çıkış hedeflerinden reddedildi.
Android 9 sürümünde, efekt zinciri işleme hattı, çok kanallı kayan nokta biçimini destekleyecek şekilde yükseltildi. Önemli noktalar:
- Android yazılım efektleri stereo float'a taşındı.
- Eski efektler, gerektiğinde float'ı int16'ya dönüştüren biçim adaptörleriyle desteklenir.
Çıkış efektlerini uygulama
Çıkış efektleri için referans uygulama,
frameworks/av/media/libeffects
adresinde mevcuttur.
Kendi özel çıkış efektlerini uygulayan iş ortakları, Android 10 sürümü için aşağıdakileri yapmalıdır:
- Çok kanallı kayan nokta biçimini desteklemek için çıkış efektlerini güncelleyin:
- Int16 işleme desteği artık gerekli değildir.
- 2-8 arasındaki çıkış kanalı sayıları desteklenir (gelecekteki uyumluluk için 1-30 arasındaki sayıları göz önünde bulundurun).
- Ekleme efektleri için çıkış kanalı sayısıyla eşleşen giriş kanalı sayılarını destekler. Yardımcı efektler, 1 giriş kanalı (mono) sayısını görmeye devam eder.
- Hem kanal konumu maskelerini (standart) hem de
(1 << n) - 1
kanal dizini maskelerini destekler.
- Eski satıcı çıkış efektlerini desteklemeye devam etmeniz gerekiyorsa ve bunları güncelleyemiyorsanız eski kodu aşağıdaki şekilde doğrulayın:
- Eski çıkış (ekleme) efektleri,
EFFECT_CMD_SET_CONFIG
içindeki desteklenmeyen yapılandırmaları reddetmelidir.- Biçimin int16 olduğundan emin olun.
- Giriş ve çıkış kanalı maskelerinin stereo olduğundan emin olun.
- Denetimlerden biri başarısız olursa
-EINVAL
değerini döndürür.
- Eski çıkış (yardımcı) efektleri, çıkış hedefinin çok kanallı olup olmamasına bağlı olarak, mono giriş kanalı maskesi ve muhtemelen çok kanallı çıkış kanalı maskeleriyle AudioFlinger tarafından yapılandırılır.
EFFECT_CMD_SET_CONFIG
'daki desteklenmeyen yapılandırmaları reddetmelidir.- Biçimin int16 olduğundan emin olun.
- Giriş kanalı maskesinin mono, çıkış kanalı maskesinin ise stereo olduğundan emin olun.
- Denetimlerden biri başarısız olursa
-EINVAL
değerini döndürür.
- Eski kodu doğrulayın. Çalıştığını varsaymayın.
- Eski çıkış (ekleme) efektleri,