我有一个音频队列,可以正确地播放、停止和暂停,但我发现AudioQueueStop()函数需要很长时间才能执行。
我想立即停止,然后重新开始播放音频队列,我想知道最快的方法是什么。
在我的项目中,我有多个音频队列,我将它们保留下来反复播放特定的声音。有一种情况是,我必须停止一些声音,然后立即播放它们,并立即播放更多的声音。如果只有几个音频队列,这并不是很糟糕,但如果有许多音频队列需要停止和重新启动,它就会花费很长很长的时间。
我可以通过在音频队列上调用stop,然后创建一个具有相同声音的新队列来伪造它,但我想知道是否有更好的方法来做到这一点。
发布于 2012-01-18 18:22:04
对于这类东西,AudioQueue可能会变得混乱。很难在缓冲区中间停止队列,这意味着当前缓冲区将继续播放。此外,您还必须处理延迟问题。
对于快速停止和低延迟播放,我建议使用RemoteIO AudioUnit。
你可以在这里找到一个很棒的教程,里面有代码:
Using RemoteIO audio unit
https://stackoverflow.com/questions/4609480
复制相似问题