2009-05-27 104 views
4

我正在爲iPhone編寫遊戲,沒有背景音樂,它在30 fps下流暢運行。但是,如果我添加音樂(使用AudioQueues或AVAudioPlayer,兩者效果相似),幀速率會週期性降至10(大約每秒一次),然後返回30.音樂是mp3 @ 128kps,44kHz。它不是經常性地降低性能,而是在某些時候降低性能,這會導致非常生澀的遊戲性。有人遇到過這樣的問題嗎?有沒有什麼辦法讓MP3解碼/播放更加統一的CPU負載?大多數時候我寧願有29fps的速度超過30fps,每秒10次。iPhone的MP3播放問題

回答

0

你需要配置你的應用程序。

無論比特率如何,我都得到60fps。

1

也許你可以增加渲染線程的優先級?或者把它帶入不同的運行循環(如果你是這樣做動畫的話)。

0

如果您向我們展示您的代碼,這將是最好的。你是否檢入了音頻緩衝選項,它可能不是你需要的最佳選擇。你對音頻設備感到滿意嗎?

1

夫婦的想法:

1)這可能是工作試圖轉換你的文件轉換成另一種格式,看看您是否仍然有這個問題。我在使用CAF文件方面取得了巨大的成功,只是對它們進行反轉換。

afconvert -f caff -d ima4 <your mp3 file> 

2)另外,減速和跟蹤變化之間是否有任何聯繫?改變曲目(或重新開始曲目)時,我經常看到類似的東西。我認爲它與從「磁盤」讀取文件所需的負載有關。

1

這很可能是由於使用AmbientSound音頻會話類別引起的,請參閱this question。您可以通過切換到SoloAmbientSound類別輕鬆解決問題。

+0

這解決了我們的問題。 – 2009-12-14 14:00:57