android系统中的audio是完成音频相关的处理的。
audio主要包括3个部分,分别是:
AudioRecord和AudioTrack:完成音频数据的采集和输出任务。
AudioFlinger:Audio系统的引擎,管理系统中的输入输出音频流,负责混音,读写Audio硬件和实现数据的输入输出功能。
AudioPolicyService:策略中心,掌管系统中声音设备的选择和切换,音量控制等功能。
2. AudioTrack
AudioTrack属于系统对外提供的API类,这样就是说AudioTrack.java到AudioTrack.cpp这个是属于Client端,而与之对应的是AudioFlinger这个服务端,即,使用Binder通信中的Bn的功能。
上层对AudioTrack的使用就是按照一般的创建方式:
(1)根据音频数据的特性来确定要分配的缓冲区的最小size.
int buffersize = ();
(2)创建AudioTrack对象:
AudioTrack trackplayer = new AudioTrack(参数1,参数2,...);
(3)开始播放:
trackplayer.play();
(4)调用write写数据
trackplayer.write(参数1, 参数2, 参数3 );
(5)停住播放和释放资源
trackplayer.stop();
trackplayer.release();