我试图实现一个在循环中播放一系列音调的应用。 实际上,我使用的是OpenAL,我对这种框架的体验是积极的,因为我也可以进行合理的音调。
以下是该方案:
这很有效,只要节拍率不高 - 我的意思是每个音调的时间超过10毫秒。
无论如何,我的NSTimer(将我的声音序列嵌入播放)应该是可配置的 - 一旦我的节拍率增加(我的意思是每个音调小于10毫秒),声音就不再正确回声 - 即使是一些音调也是如此以明显的随机方式丢弃。
似乎实时声音处理成为一个问题。 我仍然是IOS编程的新手,但我相信Apple设定了时间消耗和/或信号量的限制。
现在我的问题:
非常感谢提前! 我知道它涉及一个相当特殊和困难的问题 - 也许是s.o.你解决了类似的问题?只是要强调:声音音调必须得到保证!
答案 0 :(得分:0)
从解释中不能立即清楚地知道你正在努力实现的目标。预计会有一些代码。
但是,使用NSTimer
对音频播放进行排序显然存在问题。它既不是可靠的也不是高分辨率计时器。
NSTimer
通过运行循环队列(可能是您的应用程序的主队列)传递事件 - 它们满足用户界面事件。 您应该用于排序事件的时钟是回放采样时钟 - 可以在您使用的任何框架的渲染处理程序中使用。除了可靠之外,这也是有效的,因为渲染处理程序无论如何都会定期运行,并且在实时线程中。