0

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

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

  • 每个钢琴键都有一个 .mp3
  • 酌情使用 AVAudioPlayer 播放 .mp3

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

我的问题是,内存密集程度如何AVAudioPlayer?我可以通过创建 88 来初始化程序AVAudioPlayer,将它们保存在内存中,并酌情使用它们吗?还是 a 的内存占用AVAudioPlayer太大,我应该只AVAudioPlayer根据需要分配/释放 s 吗?如果是这样,分配/释放玩家是否足够快,以至于用户不会注意到任何延迟?

4

1 回答 1

1

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

于 2012-05-08T05:54:25.333 回答