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();
本文详细介绍了Android系统中音频处理的主要组成部分,包括AudioRecord和AudioTrack的音频数据采集与输出、AudioFlinger作为音频系统的引擎以及AudioPolicyService在声音设备选择和音量控制中的作用。此外,还特别讲解了AudioTrack的使用流程。
5472

被折叠的 条评论
为什么被折叠?



