我正在编写一个简单的iOS应用程序,其中包括一架钢琴。
我只需要一些非常基本的东西,我可能会采用这种方法:
- 每个钢琴键都有一个.mp3
- 使用AVAudioPlayer播放.mp3s ,如果合适
我的理解是,一个AVAudioPlayer
实例只能与一种声音一起使用。因此,我必须创建许多AVAudioPlayer
(准确地说是88),每个钢琴键一个。
我的问题是,AVAudioPlayer
内存密集程度如何?我可以通过创建 88 个 AVAudioPlayer
s、将它们保存在内存中并根据需要使用它们来初始化程序吗?还是AVAudioPlayer
的内存占用太大,我是否应该只在必要时分配/释放AVAudioPlayer
?如果是这样,分配/释放播放器是否足够快,以便用户不会注意到任何延迟?
该项目使用 OpenAL SoundBankPlayer 作为该功能的解决方案。另一种方法是使用soundFont和Sampler AudioUnit。针对音乐创作类型的应用程序进行了非常优化。良好的细节和源代码:AudioGraph