Yüksek çözünürlüklü ses

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 bileşenleri ve çıkarıcılar, float'ı (24+ bit kayıpsız hassasiyet) destekleyecek şekilde güncellendi. Downmix ve Virtualizer efektleri kayan olacak şekilde güncellendi. Güncellenmiş hassasiyete MediaPlayer (NuPlayer) tarafından izin verilir.
  • Yüksek frekans: WAV, FLAC codec'leri ve çıkarıcılar 192 kHz'i destekleyecek şekilde güncellendi. Varsayılan Android tarafından sağlanan efektler, standart frekanslarda 192 kHz desteği açısından test edilmiştir. İ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 açısından test edilmiştir.
  • Zamanlama: Zamanlama bilgisi ses çerçevesinin tamamına dahil edilmiştir.

Android 9'dan itibaren aşağıdaki iyileştirmeler herhangi bir iş ortağı uygulaması gerektirmemektedir:

  • AudioTrack sınırlı istemci örnekleri Android 8.x'teki uygulamalar için bir sorun olduğundan, eş zamanlı istemci çıkış parçalarının sayısı 14'ten 40'a çıkıyor.
  • Maksimum istemci/sunucu belleği, daha fazla eşzamanlı yüksek çözünürlüklü ses parçasına izin vermek için (toplam cihaz belleğine bağlı olarak) 4 MB'tan 32 MB'a çıkar.
  • Uygulamalar ve Sistem Kullanıcı Arayüzü arasındaki 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 değişiklikleri için Ses efektleri konusuna bakın.

Android 9 sürümünden önce efekt zinciri işleme stereo int16 örnek formatında uygulanıyordu. Bunun birkaç sınırlaması vardı:

  • Tüm çıkış efektleri, kayan noktalı ses verilerinden int16'ya dönüşümü zorlayarak hassasiyet kaybına neden olur.
  • Çıkış efektleri, kanal sayısı ikiden büyük olan çıkış havuzlarından reddedildi.

Android 9 sürümünde, efekt zinciri işleme hattı, çok kanallı kayan formatı destekleyecek şekilde yükseltildi. Anahtar noktaları:

  • Android yazılım efektleri zaten stereo kayan noktaya taşınmıştır.
  • Eski efektler, gerektiğinde float'ı int16'ya dönüştüren format bağdaştırıcılarıyla desteklenir.

Çıktı efektlerini uygulama

Çıktı efektlerine yönelik bir referans uygulaması, frameworks/av/media/libeffects altında mevcuttur.

Kendi özel çıktı efektlerini uygulayan iş ortakları, Android 10 sürümü için aşağıdakileri yapmalıdır:

  • Çok kanallı kayan formatı desteklemek için çıktı efektlerini güncelleyin:
    • Int16 işleme desteğine artık gerek yok.
    • Destek çıkış kanalı sayısı 2 ile 8 arasıdır (gelecekteki uyumluluk için 1 ile 30 arası sayıları dikkate alın).
    • Ekleme efektleri için giriş kanalı sayımlarını eşleşen çıkış kanalı sayımlarını destekler. Yardımcı efektler giriş kanalı sayısını 1 (mono) olarak görmeye devam eder.
    • (1 << n) - 1 kanal konum maskelerini (kanonik) ve kanal dizin maskelerini destekleyin.
  • Eski satıcı çıktı efektlerini desteklemeye devam etmeniz gerekiyorsa ve bunları güncelleyemiyorsanız eski kodu aşağıdaki şekilde doğrulayın:
    • Eski çıktı (ekleme) efektleri, EFFECT_CMD_SET_CONFIG içindeki desteklenmeyen yapılandırmaları reddetmelidir .
      • Formatın int16 olup olmadığını kontrol edin.
      • Giriş ve çıkış kanalı maskelerinin stereo olup olmadığını kontrol edin.
      • Her iki kontrol de başarısız olursa -EINVAL değerini döndürün.
    • Eski çıkış (yardımcı) efektleri, çıkış havuzunun çok kanallı olup olmamasına bağlı olarak AudioFlinger tarafından bir mono giriş kanalı maskesi ve potansiyel olarak çok kanallı çıkış kanalı maskeleri ile yapılandırılır. EFFECT_CMD_SET_CONFIG içindeki desteklenmeyen yapılandırmaları reddetmeleri gerekir .
      • Formatın int16 olup olmadığını kontrol edin.
      • Giriş kanalı maskesinin mono ve çıkış kanalı maskesinin stereo olduğunu kontrol edin.
      • Her iki kontrol de başarısız olursa -EINVAL değerini döndürün.
    • Eski kodu doğrulayın. İşe yaradığını varsaymayın!