Android 7.0 Audio : Andriod Audio Overview

整個android平臺的音頻框架圖如下,

 

 

 APP

音樂播放器,錄音,音效設置,電話,聲音設置,視頻播放器等使用聲音的軟件。

 

 

  Framework

MediaPlayer和MediaRecorder,AudioTrack和AudioRecorder,提供聲音播放和錄製。MediaPlayer/MediaRecorder功能更強大,也更易於使用。

AudioManager、AudioService及AudioSystem等類提供聲音控制、通道選擇、音效設置等功能。

這一層主要是橋接功能,封裝native層提供的服務。

 

 

  Native

AudioTrack、AudioRecorder、MediaPlayer、MediaRecorder、AudioSystem對應java層的相關類,代碼放置在frameworks/av/media/libmedia中, C++語言編寫,編譯後成爲libmedia庫。

AudioFlinger和AudioPolicyService是核心代碼,它們的代碼在frameworks/av/services/audioflinger,編譯後成爲libaudioflinger庫,運行在AudioServer系統進程。

MediaPlayerService也是系統服務,提供音視頻的播放功能,它的代碼位置在frameworks/av/media/libmediaplayerservice。

 

 

 HAL

HAL是AudioFlinger向下訪問的對象,廠商會在這一層實現自己的接口層,橋接硬件驅動和上層框架,形成的文件會編譯成audio.primary.*,audio.a2dp.*等so庫文件供音頻模塊加載。
發佈了96 篇原創文章 · 獲贊 40 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章