我正在爲iOS平臺製作遊戲,並且我想使用openAL在遊戲中播放音頻效果(背景音樂除外)。我想要例如20-30個持續時間爲1-3秒的聲音。因爲我希望這些聲音能夠毫不拖延地播放,我必須從文件加載,解壓縮並存儲在內存中。但解壓縮音頻(據我所知)使用了大量的內存。那麼我是否正確?或者有另一種方式?謝謝在iOS中使用openAL預先播放音頻文件的好方法
2
A
回答
3
加載聲音會導致延遲,並可能導致應用程序的其餘部分抖動。爲了獲得最佳性能,您一定要預先加載聲音效果。
內存使用是一個問題,但只要你不是一次加載太多的音頻數據到內存,你會沒事的。
未壓縮時,44KHz單聲道音頻數據將佔用每秒88,000字節。立體聲是雙倍的,但通常對於不想立體聲的音效而言。所以如果你有30個聲音加載,每個持續3秒,你將有90秒的聲音使用7.5MB的內存。在將其壓縮到AAC(保留源採樣率)之前,您可以使用22050 Hz的信號源將內存使用量減半。
我要做的就是保持音頻緩衝區高速緩存,我可以刷新,當應用程序開始使用過多內存,就像這樣:https://github.com/kstenerud/ObjectAL-for-iPhone/blob/master/ObjectAL/ObjectAL/OALSimpleAudio.m#L441
1
對於最低延遲聲音效果,您將需要播放已經存儲在內存中的未壓縮音頻。 2或3兆字節並不是分配給低延遲聲音效果的大量內存。
相關問題
- 1. 使用OpenAL播放聲音
- 2. 在iOS上播放FLAC音頻文件
- 3. AudioToolbox/OpenAL ExtAudioFile播放壓縮音頻
- 4. 音頻播放器在iPhone中播放遠程音頻文件?
- 5. 使用OpenAL和C++同步音頻和視頻播放
- 6. 將預先錄製的音頻播放到語音通話中
- 7. 播放聲音的OpenAL
- 8. 在播放音頻文件
- 9. 如何播放音頻先完成音頻文件,然後開始播放?
- 10. 如何播放音頻文件ios
- 11. MPMoviePlayerController iOS播放音頻文件問題
- 12. 在iOS中錄製視頻時播放音頻文件
- 13. 播放流聲音OpenAL
- 14. 在Android音樂播放器中播放音頻文件
- 15. 一次播放音頻音頻文件
- 16. 確定OpenAL何時使用回調完成播放音頻
- 17. 使用chrome.extension.getBackgroundPage()播放音頻文件
- 18. 使用Javascript播放音頻文件/ jquery
- 19. 使用Intents播放音頻文件
- 20. 使用Python播放音頻文件
- 21. 使用NAudio播放音頻文件1.7+
- 22. 使用iTunes播放音頻文件SDK
- 23. 使用C播放音頻文件
- 24. 播放單音音頻文件的最佳方法是什麼?
- 25. 我如何在Java中使用方法播放音頻文件,但是當再次調用該方法時,以前的音頻文件停止播放?
- 26. 在Swift中使用AV音頻播放器進行條件音頻播放
- 27. 不斷使用音頻記錄的URL播放音頻文件
- 28. 播放音頻文件
- 29. Android播放音頻文件
- 30. 播放音頻文件