安卓音频播放框架:
1、播放声音时都要创建AudioTrack对象
2、java的AudioTrack对象创建时会导致c++的AudioTrack对象被创建;
3、所以分析的核心是c++的AudioTrack类
4、创建AudioTrack时涉及一个重要函数: set
录音框架:
1、APP创建、设置AudioRecord
2、AudioPolicyManager根据inputSource等参数确定录音设备: device
3、AudioFlinger创建一个RecordThread, 以后该线程将从上述device读取声音数据
4、在RecordThread内部为APP的AudioRecord创建一个对应的RecordTrack
APP的AudioRecord 与 RecordThread内部的RecordTrack 通过共享内存传递数据
5、RecordThread从HAL中得到数据, 再通过内部的RecordTrack把数据传给APP的AudioRecord