使用AVAudioPlayer进行钢琴采样 - 内存管理

时间:2012-05-06 20:58:28

标签: ios audio core-audio avaudioplayer

我正在编写一个包含钢琴的简单iOS应用程序。

我只需要非常基本的东西,我可能会采用这种方法:

  • 每个钢琴键都有一个.mp3
  • 使用AVAudioPlayer根据需要播放.mp3s

我的理解是一个AVAudioPlayer实例只能用于一个声音。因此,我必须创建许多AVAudioPlayer s(准确地说是88),每个钢琴键一个。

我的问题是,内存密集型是AVAudioPlayer?我可以通过创建88 AVAudioPlayer来初始化程序,将它们保存在内存中,并在适当时使用它们吗?或者AVAudioPlayer的内存占用量是否太大,我是否应该根据需要分配/释放AVAudioPlayer?如果是这样,分配/释放玩家是否足够快,以便用户不会注意到任何滞后?

1 个答案:

答案 0 :(得分:1)

此项目使用OpenAL SoundBankPlayer作为该功能的解决方案。另一种方法是使用soundFont和Sampler AudioUnit。非常适合音乐创作类型的应用程序。好的细节和源代码:AudioGraph