3

我有一个音频队列,我可以正确播放、停止、暂停,但我发现 AudioQueueStop() 函数需要很长时间才能执行。

我想立即停止然后重新开始播放音频队列,并且想知道最快的方法是什么。

在我的项目中,我有多个音频队列,我一直在播放特定的声音。有一种情况,我必须停止其中一些声音,然后立即播放它们,一次播放更多。如果只有几个音频队列我这样做还不错,但如果有很多我需要停止并重新启动,它就会开始花费很长时间。

我可以通过在音频队列上调用 stop 然后创建一个具有相同声音的新队列来伪造它,但我想知道是否有更好的方法来做到这一点。

4

1 回答 1

2

AudioQueue对于那种东西可能会很乱。很难在缓冲区中间停止队列,这意味着当前缓冲区将继续播放。另外,您必须处理延迟问题。

为了以低延迟快速停止和播放,我建议使用 RemoteIO AudioUnit。

你可以在这里找到一个很棒的代码教程:

使用 RemoteIO 音频单元

于 2012-01-18T10:22:03.800 回答