iPhone上的音频队列服务仅播放第一个入队缓冲区?

我一整晚都在努力想办法解决这个问题。 我的代码基本上和Apple的例子一样。 但是,该设备仅播放放置在队列中的FIRST缓冲区(我听到应用程序启动时第一个缓冲区的内容)。 之后,设备根本没有声音。 由于AQS继续激发我的AudioQueueOutputCallback功能,播放仍在运行。 此外,每次对AQS的呼叫返回0,因此没有任何失败。

现在,只要从我的回调函数中调用AudioQueueEnqueueBuffer ,就可以播放后续缓冲区。 这是行不通的,因为我只能从我的AudioFileStream_PacketsProc回调中填充缓冲区,并将数据从套接字放入AudioFileStreamParseBytes

任何人都有这个问题? 看起来像AQS中的一个bug对我来说......

谢谢,安德鲁


如果其他人有这个问题,就想出来......

我没有意识到AQ总是及时向前推进。 由于我使用的是UDP数据流中的音频数据,因此我会慢慢落后于AQ,因为丢失了数据包。

我一直无法弄清楚如何让AQ发挥缓冲作用,“现在正确”。 我的解决方法是只在检测到丢包时重置AQ。 这并不理想,但现在起作用。

安德鲁

链接地址: http://www.djcxy.com/p/26981.html

上一篇: Audio Queue Services on iPhone only playing the first enqueued buffer?

下一篇: Warning Regarding the UITableviewcell