前面和大家探讨了AVFoundation对音频进行录制播放的多种方式,尤其是前一节,比较底层的控制了音频的录制。下面我们再来看看音频的整体框架:
我们来介绍介绍中间层黄色部分:AudioToolBox
这个部分主要探讨用Audio Queue对音频进行播放,当然可以用来录制。(因为上一节将的录制,所以为了不重复及多样性,我们这节将播放)
先看看音频播放的原理:
录音过程和播放过程的原理类似,这里就以音频播放来分析下AudioQueue的原理。
首先看下Audio Queue左中右三个部分,左边是音频源,中间是我们创建的音频队列,最右边是音频硬件扬声器。
我们在AudioQueue中首先创建3个Buffer,启动AudioQueue,开始从本地读取音频文件,读取出来的数据在CallBack回调方法中进行处理,数据先放在buffer 1中。当buffer1 装填完毕之后,开始装填buffer 2,同时已满的buffer 1音频数据,装填到扬声器中开始播放。这时候buffer 1已空。这时吧这个空的buffer在排在3后面继续等待音频数据装填。
整个结构图如下: