想用音频队列播放音乐,在网上Goole了一天,找了一些DEMO,但是还是看不懂,因为不懂每个方法和参数的意思,只好看着别人的Demo,对着API去查.
最主要的还是要明白音频队列的工作原理.
1.应用程序调用CallBack方法读取音频数据存放到音频队列的Buffers,音频队列的Buffer有三个存放在一个数组里面.就是这个东西
AudioQueueBufferRef mBuffers[kNumberBuffers];
2.当其中的Buffer数据满时,Buffer存放数据的大小有我们自己设置.就放放到缓冲队列中区,等待播放.
3.这时候在等待播放的第一个缓冲区准备完毕时,就可以播放音乐了.
4.第一个缓冲区播放完毕,就会播放下一个缓冲区的数据,当音频队列的缓冲区数据都放到了buffer Queue中,就会再次调用CallBack方法,读取数据
5.重复上面的顺序,知道数据读取完毕,CallBack会终止播放.