停止和快速重播的AudioQueue
-
25-09-2019 - |
题
我有一个音频队列,我已经得到播放,停止,暂停正确的,但我发现了AudioQueueStop()函数将花费很长的时间来执行。
我想立即停止并重新播放音频队列,并想知道最快的方式这样做会。
在我的项目,我有多个音频队列,我保持周围一遍又一遍地播放特定的声音。有一个情况我必须阻止一些人的声音,然后立即玩一次他们等等。它并没有那么糟糕,如果有,我这样做是为了只有几个音频序列,但它开始考虑,如果有很多,我需要停止并重新启动了很久很久。
我可以伪造它通过调用停止在音频队列,然后创建一个新的具有相同的声音,但不知道是否有更好的方法来做到这一点。
解决方案
AudioQueue
可以是那类东西凌乱。这是很难停止队列中间缓冲,这意味着当前缓冲区将继续发挥。另外,你必须处理延迟问题。
有关快速停止和回放,低潜伏时间,我建议使用RemoteIO AudioUnit。
您可以在这里找到代码中的伟大的教程:
不隶属于 StackOverflow