2012-04-27 195 views
2

我打一些短的聲音在我的iPad就像這樣:Play a short sound in iOS聲音也只在設備工作,但不是在模擬器

我使用的是caf文件,我可以成功地從Finder中播放。現在,我通過了不少麻煩努力實現聲音的回放的去了,我很好奇,什麼可能是我似乎不明白的問題:

  • 選項1:當我創建SystemSoundID,然後馬上播放,我沒有聽到任何設備和模擬器。

  • 選項2:當我爲SystemSoundID創建一個實例變量並在viewDidLoad中初始化它時,我設法播放聲音,但只能在iPad上播放聲音,而不是在模擬器上。

  • 選項3:不要使用SystemSoundID的我也可以使用AVAudioPlayer播放一個.wav文件,然後作用於iPad和模擬器既但在這裏我需要viewDidLoad創建AVAudioPlayer否則我不會得到任何聲音如果我一氣呵成的話。

最好的辦法目前看來Option 3,因爲它工作在模擬器和iPad兩個,而是因爲我需要預先初始化的球員,我需要一個AVAudioPlayer實例爲每個不同的聲音,我想發揮,這似乎並不十分內存明智...

有沒有辦法,我缺少的是有可能使用AudioToolbox框架兩個平臺上播放聲音的東西(方案1個&選項2)

回答

3

我寫了一個庫來簡化所有這些。它包裝AVAudioPlayer,在設備和模擬器上都能正常工作。

https://github.com/nicklockwood/SoundManager

的代碼是相當簡單的,雖然我做了一些半聰明的東西初始化音頻播放器。如果你不想使用庫,你可以複製代碼。

儘管有一個警告 - 當你使用AVAudioPlayer時,模擬器會在內部拋出一些奇怪的異常。它們根本不會影響應用程序,但是如果您在Xcode中啓用了突發異常,那麼在啓動過程中應用程序會掉入調試器中幾次,您將不得不手動恢復,這可能會使您感到困惑你並不期待它。

相關問題