1,audio框架
APP层:
音乐播放器,视频播放器。
播放器一般使用MediaPlayer,MediaRecorder来进行播放和录音,MediaPlayer可以将音频文件进行解码,得到pcm流,然后使用AudioTrack进行播放。MediaRecorder是类似相反的过程。
Framework Java层:
AudioTrack —— 播放pcm流
AudioRecorder —— 录音pam流
AudioManager , AudioSystem, AudioEffect 实现音量控制、音频通路策略、音效设置等
Framework Native层:
AudioTrack —— 播放pcm流
AudioRecorder —— 录音pam流
AudioEffect —— 音效处理
AudioPolicyService —— 音频策略管理,音量管理,音效设置
AudioFlinger —— 音频播放,录音,混音,音效处理
Hal层:
向上对接AudioFlinger,向下通过读写声卡card0节点,调用kernel驱动控制硬件,实现对音频流数据的播放与录音实现。
ALSA框架
可以参考:ALSA驱动分析
可以参考: