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