音頻系統(tǒng)java相關(guān)的代碼在./frameworks/base/media/java/android/media/目錄下
主要有如下文件:
AudioManager.java
為上層應(yīng)用提供了聲音設(shè)置管理接口.
AudioService.java
音頻設(shè)置服務(wù), 它在SystemServer中啟動,為所有的音頻相關(guān)的設(shè)置提供服務(wù)。
在AudioService 中定義了了一個(gè)AudioSystemThread 的類,用來監(jiān)控音頻控制
相關(guān)的信號,當(dāng)有請求時(shí),它會通過調(diào)用AudioSystem 的接口實(shí)現(xiàn)音頻的控制,
這里的消息處理是異步的。此外在AudioService還抽象出了一套發(fā)送音頻控制信
號的接口為AudioManager提供支持。
AudioSystem.java:
提供了音頻系統(tǒng)的基本類型定義,以及基本操作的接口。它對應(yīng)于
frameworks/base/core/jni/android_media_AudioSystem.cpp
Ringtone.java
RingtoneManager.java
為鈴聲、鬧鐘等提醒提供了快速的播放以及管理接口。
AudioTrack.java
直接為PCM數(shù)據(jù)提供支持,對應(yīng)于frameworks/base/core/jni/android_media_AudioTrack.cpp
SoundPool.java
提供了為引用播放聲音的接口,在加載文件等方面做了優(yōu)化。
ToneGenerator.java
提供了播放DTMF tones 的支持,
如電話的撥號音,對應(yīng)于直接為PCM數(shù)據(jù)提供支持,對應(yīng)于frameworks/base/core/jni/android_media_ToneGenerator.cpp
AudioRecord.java
這個(gè)是音頻系統(tǒng)對外的錄制接口,對應(yīng)于:frameworks/base/core/jni/android_media_AudioRecord.cpp