【发布时间】:2012-08-13 19:02:54
【问题描述】:
所以我正在构建一个小应用程序,它有一个键盘和一些其他按钮来触发音频样本。
对于这个应用程序,有几个预先录制的音轨(鼓、人声、吉他)可以静音/取消静音...我用 AVAudioPlayer 让这部分工作正常
但是,正如你们大多数人所知,AVAudioPlayer 有点慢,并且如果它被指定为触发击鼓或合成器的小音频样本,则会有一些延迟。所以我实现了 SystemSoundServices 来播放短声音样本。就按下按钮和播放声音之间的延迟而言,它工作正常,但我有一个小问题。说样本时,重复按两次,您会听到轻微的爆裂声,这是意料之中的,因为当第二次按下按钮时,它会切断第一个样本的播放。
我想通过基本检测是否正在播放样本来解决这个问题,如果是,则将音量设置为0,停止播放,然后再次播放样本。但不幸的是 systemsoundservices 没有内置此功能。 AVAudioPlayer 有,但它太慢了。我知道有 CoreAudio、AudioQueue、Open AL,但是对于我需要做的事情来说,这些似乎都太复杂了。我不需要进行任何类型的音频处理。
有没有人对不需要编写 100 行代码来播放短音频剪辑的音频框架有任何建议?一切似乎都在告诉我要花数周时间学习 CoreAudio/AudioQueue/OpenAL,而这似乎是在浪费我正在从事的工作。
【问题讨论】:
标签: objective-c ios frameworks core-audio