我的一个应用程序使用 NSSound 播放 10 秒 AAC 编码的预先录制的白噪声循环,我几乎已经完成了白噪声功能的工作。
[sound setLoops: YES]
应该是所有需要的,对吧?
它就像一个魅力,但我注意到在声音文件完成和重新启动之间有一个可听见的停顿......一种“扑通”的声音。这在循环原始声音文件时不存在,经过一个小时左右的时间试图弄清楚这一点,我得出的结论是 NSSound 很烂,并且可听见的暂停是私有后台线程同步的产物播放声音。它似乎以某种方式依赖于主运行循环,这会导致声音结束和重新开始之间的可听间隙。
我对声音知之甚少,这是一个非常次要的功能,所以我不想深入 CoreAudio 只是为了播放循环 10 秒的声音片段.. 所以我去追求一个不错的选择,但似乎什么都没有非常适合:
- Core Audio:完全矫枉过正,但至少是标准框架
- AudioQueue:复杂,带有 C++ 示例代码!?
- MusicKit/ SndKit:也是巨大的学习曲线,基于大量开源的东西等。
我看到 iOS 4 上的 AVFoundation 将是播放声音的好方法,但这只计划用于 Mac OS X 10.7..
在 Mac OS X 10.5+ 上是否有任何易于使用的可靠循环声音的方法?
是否有任何用于 AudioQueue 或 Core Audio 的示例代码可以减轻在 Objective-C 应用程序中使用它们的痛苦?
任何帮助将不胜感激..
最好的祝福,
坦率