停止并快速重放 AudioQueue
Posted
技术标签:
【中文标题】停止并快速重放 AudioQueue【英文标题】:Stopping and Quickly Replaying an AudioQueue 【发布时间】:2011-01-05 21:38:08 【问题描述】:我有一个音频队列,可以正确播放、停止、暂停,但我发现 AudioQueueStop() 函数需要很长时间才能执行。
我想立即停止然后重新开始播放音频队列,想知道最快的方法是什么。
在我的项目中,我保留了多个音频队列,以反复播放特定的声音。有一种情况,我必须停止其中一些声音,然后立即播放它们,一次播放更多。如果我只对几个音频队列执行此操作,这还不错,但如果我需要停止并重新启动很多音频队列,它就会开始花费很长时间。
我可以通过在音频队列上调用 stop 然后创建一个具有相同声音的新队列来伪造它,但我想知道是否有更好的方法来做到这一点。
【问题讨论】:
【参考方案1】:AudioQueue
对于这类东西可能会很乱。很难在缓冲区中间停止队列,这意味着当前缓冲区将继续播放。另外,您必须处理延迟问题。
为了以低延迟快速停止和播放,我建议使用 RemoteIO AudioUnit。
你可以在这里找到一个很棒的代码教程:
Using RemoteIO audio unit
【讨论】:
以上是关于停止并快速重放 AudioQueue的主要内容,如果未能解决你的问题,请参考以下文章