2009-06-17 115 views
3

我有一個簡單的問題:我將一個mp3文件加載到一個NSData對象中,然後在我的遊戲中使用AVAudioPlayer播放它。每秒鐘左右,幀頻下降,您可以看到屏幕上出現口吃。這不是一個主要的放緩,但顯然明顯並擾亂遊戲玩法。不使用AVAudioPlayer播放音樂曲目顯示沒有減慢速度。AVAudioPlayer - Drop in Framerate

我該如何防止這種情況發生?

謝謝。

弗洛裏安

回答

7

以供將來參考,這裏是解決方案:

設置音頻會話類別kAudioSessionCategory_AmbientSound(允許的iPod音樂同時播放)以某種方式禁用MP3硬件加速。將音頻類別設置爲kAudioSessionCategory_SoloAmbientSound可以解決此問題,但不允許iPod播放。我現在根據是否啓用背景音樂來設置音頻會話類別,以允許同時播放iPod。

0

中的mp3音樂是編碼的/壓縮的音頻格式。您可以嘗試降低採樣率(用於測試,而不是128 kb/s嘗試64 kb/s)或切換到非編碼格式,如線性pcm。缺點是:前者的音頻質量較低,後者的文件較大。但是這可以幫助改善您的應用的整體表現。