Google 致力于为黑人社区推动种族平等。查看具体举措
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Ses

Android Audio HAL simgesi

Android'in ses Donanım Soyutlama Katmanı (HAL), android.media'daki üst düzey, sese özgü çerçeve API'lerini temel ses sürücüsüne ve donanımına bağlar. Bu bölüm, uygulama talimatlarını ve performansı iyileştirmeye yönelik ipuçlarını içerir.

Android ses mimarisi, ses işlevselliğinin nasıl uygulandığını tanımlar ve uygulamaya dahil olan ilgili kaynak koduna işaret eder.

Ses mimarisi

Şekil 1. Android ses mimarisi

Uygulama çerçevesi
Uygulama çerçevesi, ses donanımıyla etkileşim kurmak için android.media API'lerini kullanan uygulama kodunu içerir. Dahili olarak, bu kod, ses donanımıyla etkileşime giren yerel koda erişmek için karşılık gelen JNI yapıştırıcı sınıflarını çağırır.
JNI
İle ilişkili JNI'yı kodu android.media aramalar erişim ses donanımları için seviye yerel kod düşürün. JNI, frameworks/base/core/jni/ ve frameworks/base/media/jni .
Yerel çerçeve
Yerel çerçeve, medya sunucusunun sese özgü hizmetlerine erişmek için Binder IPC proxy'lerini çağırarak android.media paketine yerel bir eşdeğer sağlar. Yerel çerçeve kodu, frameworks/av/media/libmedia .
Bağlayıcı IPC
Binder IPC proxy'leri, süreç sınırları üzerinden iletişimi kolaylaştırır. Proxy'ler frameworks/av/media/libmedia ve "I" harfiyle başlar.
Medya sunucusu
Medya sunucusu, HAL uygulamalarınızla etkileşime giren gerçek kod olan ses hizmetlerini içerir. Medya sunucusu frameworks/av/services/audioflinger .
HAL
HAL, ses hizmetlerinin çağırdığı ve ses donanımınızın doğru çalışması için uygulamanız gereken standart arabirimi tanımlar. Ses HAL arayüzleri, hardware/libhardware/include/hardware . Ayrıntılar için audio.h bakın.
Çekirdek sürücüsü
Ses sürücüsü, donanımınız ve HAL uygulamanızla etkileşime girer. Gelişmiş Linux Ses Mimarisi (ALSA), Açık Ses Sistemi (OSS) veya özel bir sürücü (HAL sürücüden bağımsızdır) kullanabilirsiniz.

Not : ALSA kullanıyorsanız, uyumlu lisanslaması nedeniyle sürücünün kullanıcı kısmı için external/tinyalsa öneririz (standart kullanıcı modu kitaplığı GPL lisanslıdır).

Open SL ES'ye dayalı Android yerel ses (gösterilmemiştir)
Bu API, Android NDK'nın bir parçası olarak sunulur ve android.media ile aynı mimari düzeyindedir.