我有一个音频队列,我已经得到播放,停止,暂停正确的,但我发现了AudioQueueStop()函数将花费很长的时间来执行。

我想立即停止并重新播放音频队列,并想知道最快的方式这样做会。

在我的项目,我有多个音频队列,我保持周围一遍又一遍地播放特定的声音。有一个情况我必须阻止一些人的声音,然后立即玩一次他们等等。它并没有那么糟糕,如果有,我这样做是为了只有几个音频序列,但它开始考虑,如果有很多,我需要停止并重新启动了很久很久。

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

有帮助吗?

解决方案

AudioQueue可以是那类东西凌乱。这是很难停止队列中间缓冲,这意味着当前缓冲区将继续发挥。另外,你必须处理延迟问题。

有关快速停止和回放,低潜伏时间,我建议使用RemoteIO AudioUnit。

您可以在这里找到代码中的伟大的教程:

使用RemoteIO音频单元

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top