使用Audio Queue播放pcm流

#使用Audio Queue播放pcm流
因为项目的原因,需要实现播放pcm流的播放器,对于iOS传统的播放器AvPlayer等音频播放器无法满足需求,这个时候需要使用更加底层播放器,Audio quue;

介绍audio queue推荐官方文档:About Audio Queues

使用音频队列需要先数显几个概念:
Audio Queue: 音频队列是调度音频队列的主体,负责调度整个播放过程的逻辑;
buffer queue:负责提供数据给Audio queue,类似于一个容器,可以服用数据,将自己的数据封装好,填入buffer queue中,然后设置Audio queue 的start 函数,audio queue便开始消费buffer queue中的数据;

Audio Queue Callback: 这一块是需要我们开发者重点处理的,当audio queue 消费完一个单元buffer的数据后,就会回调该方法,这时候我们需要给buffer queue中填入新的数据,通过这样的方式可以保证数据不间断的提供;

Audio queue 是典型的生产者,消费者模型,audio queue 负责消费数据,buffer queue,负责提供数据;

记录几个开发过程中遇到的坑:
1.在audio queue 回调buffer的时候,出现数据供应不上的问题,这个时候audio queue就触发了stop方法,再次调用start方法也不会播放;
解决方法: 判断没有数据,自动填充为空的数据;

发布了35 篇原创文章 · 获赞 9 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/SunFlowerInRain/article/details/102826617