谷歌致力於推進種族平等的黑人社區。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

音頻

Android的音頻HAL圖標

Android的音頻硬件抽象層(HAL)在較高的水平,音頻專用框架API連接android.media到底層音頻驅動程序和硬件。這部分包括執行指令和提高性能的提示。

Android的音頻架構定義了音頻功能實現,並指出參與執行相關的源代碼。

音頻架構

圖1.的Android音頻架構

應用程序框架
應用程序框架將包括應用程序代碼,它使用android.media API與音頻硬件交互。在內部,對應的JNI膠類此代碼調用訪問本地代碼與音頻硬件交互。
JNI
與相關的JNI代碼android.media調用低級別的本機代碼訪問音頻硬件。 JNI位於frameworks/base/core/jni/frameworks/base/media/jni
本地框架
本機框架提供了一個原生相當於android.media包,呼籲粘結劑IPC代理訪問媒體服務器的特定音頻服務。本地框架代碼位於frameworks/av/media/libmedia
活頁夾IPC
活頁夾IPC代理有助於通過進程邊界通信。代理服務器位於frameworks/av/media/libmedia並以字母“I”開頭。
媒體服務器
媒體服務器包含音頻服務,這是實際的代碼,你的HAL實現交互。媒體服務器位於frameworks/av/services/audioflinger
HAL
該HAL定義了標準接口,音頻服務調入和您必須正確實施您的音頻硬件的功能。音頻HAL接口都位於hardware/libhardware/include/hardware 。有關詳細信息,請參閱audio.h
內核驅動程序
你的硬件和HAL實現了音頻驅動程序進行交互。您可以使用高級Linux聲音架構(ALSA),開放聲音系統(OSS),或自定義驅動程序(HAL是驅動程序無關)。

:如果您使用ALSA,我們建議external/tinyalsa因為它兼容許可的驅動程序的用戶部分(標準用戶模式庫是GPL許可)。

基於Open SL ES Android本地音頻(未示出)
此API暴露作為其一部分的Android NDK和是在同一體系結構級別android.media