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:

  • Kayan nokta: WAV, FLAC codec'leri ve çıkarıcılar, kayan noktayı (24 bitten fazla kayıpsız hassasiyet) desteklemek için güncellendi. Downmix ve Sanallaştırıcı efektleri, kayan şekilde güncellendi. MediaPlayer (NuPlayer), güncellenmiş hassasiyete izin verir.
  • Yüksek frekans: WAV, FLAC codec'leri ve çıkarıcıları 192 kHz'i destekleyecek şekilde güncellendi. Android tarafından sağlanan varsayılan efektler, 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 edilmiştir.
  • Zamanlama: Zamanlama bilgileri ses çerçevesine dahil edilir.

Android 9'dan itibaren aşağıdaki iyileştirmeler için iş ortağı uygulaması gerekmez:

  • Android 8.x sürümlerindeki uygulamalarda AudioTrack ürününün sınırlı istemci örnekleri bir sorun teşkil ettiğinden, eşzamanlı istemci çıkış kanalının sayısı 14'ten 40'a çıktı.
  • Aynı anda daha fazla 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) artırılır.
  • Uygulamalar ile sistem kullanıcı arayüzü arasındaki kaynak anlaşmazlığını önlemek için toplam karma parça sayısı 32'den 256'ya yükseltildi.

Çıkış efekti değişiklikleri

Android 11 sürümünde yapılan değişiklikler için Ses efektleri bölümüne bakın.

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

  • Tüm çıkış efektleri, kayan nokta ses verilerinden int16'ya dönüştürmeyi zorunlu kılarak hassasiyet kaybına neden oldu.
  • Çıkış efektleri, kanal sayısı ikiden fazla olan çıkış alıcılarına gönderilmedi.

Android 9 sürümünde etki zinciri işleme ardışık düzeni, çok kanallı kayan reklam biçimini destekleyecek şekilde yükseltilmiştir. Önemli noktalar:

  • Android yazılım efektleri zaten stereo kayan noktaya taşınmıştır.
  • Eski efektler, gerektiğinde float'ı int16'a dönüştüren biçim adaptörleriyle desteklenir.

Çıkış efektlerini uygulama

Çıkış efektleri için referans uygulamayı frameworks/av/media/libeffects altında bulabilirsiniz.

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

  • Çıkış efektlerini çok kanallı kayan nokta biçimini destekleyecek şekilde güncelleyin:
    • Int16 işleme desteği artık gerekli değildir.
    • 2 ila 8 arasında çıkış kanalı sayısını destekler (gelecekteki uyumluluk için 1 ila 30 arasında sayılar kullanılabilir).
    • Ekleme efektleri için çıkış kanal sayılarıyla eşleşen giriş kanal sayılarını destekler. Yardımcı efektler 1 (mono) giriş kanalı sayısı görmeye devam eder.
    • (1 << n) - 1 kanalının hem kanal konumu maskelerini (standart) hem de kanal dizini maskelerini destekler.
  • Eski satıcı çıkış efektlerini desteklemeye devam etmeniz gerekiyorsa ve bunları güncelleyemiyorsanız eski kodu aşağıdaki gibi doğrulayın:
    • Eski çıkış (ekleme) efektleri, EFFECT_CMD_SET_CONFIG'de desteklenmeyen yapılandırmaları reddetmelidir.
      • Biçimin int16 olduğundan emin olun.
      • Giriş ve çıkış kanal maskelerinin stereo olup olmadığını kontrol edin.
      • Her iki denetim de başarısız olursa -EINVAL döndürün.
    • Eski çıkış (yardımcı) efektleri, çıkış alıcısının çok kanallı olup olmadığına bağlı olarak AudioFlinger tarafından tek kanallı giriş kanalı maskesi ve muhtemelen çok kanallı çıkış kanalı maskeleriyle yapılandırılır. EFFECT_CMD_SET_CONFIG'de desteklenmeyen yapılandırmaları reddetmesi gerekir.
      • Biçimin int16 olduğundan emin olun.
      • Giriş kanal maskesinin mono, çıkış kanal maskesinin ise stereo olduğundan emin olun.
      • Her iki denetim de başarısız olursa -EINVAL döndürün.
    • Eski kodu doğrulayın. Bu yöntemin işe yarayacağını varsaymayın.