2014-09-27 59 views
1

在我的Spritekit遊戲中,我目前有十幾個音效(我打算再添加幾個音效)以及一些背景音樂循環。他們都是目前的WAV文件。我想知道如果將音頻轉換爲mp3(或其他壓縮音頻類型),我是否會看到任何性能提升。很明顯,這將減少應用程序的整體文件大小,這很好,但我想知道較小的文件大小是否會增加任何性能優勢,或者音頻文件大小與iPad/Sprietkit性能無關。此外,我擔心將音樂循環轉換爲mp3會導致它們無法完美循環播放,因爲mp3在軌道的開頭添加了標題元數據,可以增加一小部分的靜音空間。謝謝!使用WAV音頻文件的Spritekit性能

+3

mp3被壓縮。音頻在播放前在內存中解壓縮。你的文件大小會更小,並且加載速度會更快,但是一旦解壓縮(在播放之前),你的內存佔用量將與未壓縮格式相同。在播放之前解壓縮會產生性能成本 - 因此暫停。文件越大,停頓越明顯。大多數使用未壓縮的較短的聲音並壓縮音樂。 Apple文檔具有「最佳實踐」-https://developer.apple.com/library/ios/documentation/audiovideo/conceptual/multimediapg/usingaudio/usingaudio.html – prototypical 2014-09-28 02:51:15

+2

此外,只有一個mp3可以在硬件上解碼,任何額外的佔用CPU時間解碼 – LearnCocos2D 2014-09-28 11:09:27

+1

mp3 =長時間運行音頻,wav/caf =短音效,節省內存降低採樣率 – LearnCocos2D 2014-09-28 11:10:40

回答

1

您可以通過預加載來修復性能問題。

SKAction *soundAction; 

- (void)didMoveToView: (SKView *) yourView 
{ 
    _soundAction = [SKAction playSoundFileNamed:@"yourSoundFile" waitForCompletion:NO]; 
} 

[self runAction:_soundAction];//Play your sound where you want. 
+0

謝謝。我會補充一點。但是這並不能完全回答我的問題。我想我可以重新評估它。較小的音頻文件使用較少的內存?建議使用wav文件在遊戲中使用mp3嗎? – 2014-09-27 21:59:03

+1

謝謝Valar!一旦我添加了太多的聲音效果,這是必要的。 – 2014-10-09 04:52:11