2012-05-06 31 views
0

我正在寫一個簡單的iOS應用程序,它將包括一架鋼琴。使用AVAudioPlayer進行鋼琴樣品 - 內存管理

我只需要一些非常基本的,而且我可能用這種方法去:

  • 對每一個琴鍵
  • 使用AVAudioPlayer一個.MP3播放.mp3s適當

我的理解是,一個AVAudioPlayer實例只能用於一個聲音。因此,我必須創建很多AVAudioPlayer(準確地說88),每個鋼琴鍵一個。

我的問題是,內存密集程度如何是AVAudioPlayer?我可以通過創建88 AVAudioPlayer來初始化程序,將它們保存在內存中,並根據需要使用它們?或者AVAudioPlayer的內存佔用空間太大,我是否應該根據需要只分配/釋放AVAudioPlayer?如果是這樣,將分配/釋放球員足夠快,以便用戶不會注意到任何滯後?

+0

爲什麼不嘗試創建10個左右'AVAudioPlayer'實例並監視儀器中的內存佔用情況?如果它看起來不錯,那麼就增加實例,看看它是如何發展的。 – 2012-05-06 21:48:03

+0

此外,我會建議使用IMA4(CAF)音頻格式,因爲它會減少對iDevice的處理壓力。 – 2012-05-06 22:15:56

回答

1

該項目使用OpenAL SoundBankPlayer作爲該功能的解決方案。另一種方法是使用soundFont和採樣器AudioUnit。非常適合音樂創作類型的應用程序。良好的細節和源代碼:AudioGraph

相關問題