iOS 有各种音频框架,从允许您简单地播放指定文件的高级到允许您获取原始 PCM 数据的较低级别,以及介于两者之间的所有内容。对于我们的应用程序,我们只需要播放外部文件(WAV、AIFF、MP3),但我们需要这样做以响应按下按钮,并且我们需要尽可能小的延迟。(这是为了在现场制作中排队。)
现在 AVAudioPlayer 和此类工作可以播放简单的文件资产(通过它们的 URL),但它在实际启动声音时的延迟太长了。对于长度超过五分钟的较大文件,启动声音的延迟可能超过一秒,这使得它对于现场表演的计时毫无用处。
现在我知道诸如 openAL 之类的东西可以用于非常低延迟的播放,但是你已经深入到音频缓冲区、音频源、听众等。
也就是说,有没有人知道任何可以在更高级别(即播放“MyBeddingTrack.mp3”)以非常低的延迟工作的框架?预缓冲很好。只是触发器必须快。
如果我们可以做一些事情,比如在文件中设置播放的开始和结束点,或者改变音量,甚至执行闪避等,那么我们会得到奖励。