【发布时间】:2010-08-24 13:26:34
【问题描述】:
我的一个应用程序使用 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 应用程序中使用它们的痛苦?
任何帮助将不胜感激..
最好的问候,
弗兰克
【问题讨论】:
标签: cocoa macos core-audio audioqueueservices nssound