Ios 具有WAV音频文件的Spritekit性能
在我的Spritekit游戏中,我目前有十几个左右的音效(我计划再增加几个)和一些背景音乐循环。它们都是当前的WAV文件。我想知道,如果将音频转换为mp3(或其他压缩音频类型),是否会提高性能。显然,这将减少应用程序的总体文件大小,这是很好的,但我想知道较小的文件大小是否会增加性能优势,或者音频文件大小是否与iPad/Sprietkit的性能无关。此外,我担心将音乐循环转换为mp3会导致它们无法完美循环,因为mp3的曲目开头有标题元数据,增加了一小部分静音。谢谢 您可以使用预加载修复性能问题Ios 具有WAV音频文件的Spritekit性能,ios,objective-c,performance,audio,sprite-kit,Ios,Objective C,Performance,Audio,Sprite Kit,在我的Spritekit游戏中,我目前有十几个左右的音效(我计划再增加几个)和一些背景音乐循环。它们都是当前的WAV文件。我想知道,如果将音频转换为mp3(或其他压缩音频类型),是否会提高性能。显然,这将减少应用程序的总体文件大小,这是很好的,但我想知道较小的文件大小是否会增加性能优势,或者音频文件大小是否与iPad/Sprietkit的性能无关。此外,我担心将音乐循环转换为mp3会导致它们无法完美循环,因为mp3的曲目开头有标题元数据,增加了一小部分静音。谢谢 您可以使用预加载修复性能问题 S
SKAction *soundAction;
- (void)didMoveToView: (SKView *) yourView
{
_soundAction = [SKAction playSoundFileNamed:@"yourSoundFile" waitForCompletion:NO];
}
[self runAction:_soundAction];//Play your sound where you want.
谢谢我要补充一点。但这并不能完全回答我的问题。我想我可以重新措辞。更小的音频文件会占用更少的内存吗?建议在wav文件的游戏中使用MP3吗?谢谢Valar!一旦我添加了太多的音效,这就变得很有必要了。mp3是压缩的。音频在播放前在内存中解压缩。您的文件大小将更小,加载速度更快,但一旦解压缩(在播放之前),您的内存占用将与未压缩格式相同。当您在播放之前解压缩时,解压缩会带来性能损失-因此暂停。文件越大,暂停越明显。大多数使用未压缩的声音来播放较短的声音,而使用压缩的音乐。Apple docs有“最佳实践”-而且只有一个mp3可以在硬件上解码,任何额外的解码都会占用cpu时间mp3=长时间运行的音频,wav/caf=短音效,以节省内存减少采样率感谢回复。这太棒了。我通读了整个多媒体节目指南。我假设在应用程序的生命周期内,1个MP3可以用硬件解码?还是一次一个?理想情况下,背景音乐将立即播放并无缝循环,因此听起来像是MP3已退出,因为循环MP3可能会由于标题而导致循环之间的间隙。我的游戏循环大约30秒,主屏幕和记分板音乐循环非常短,大约10秒。我将把所有的东西都转换成caf,看看和Wave相比,内存使用是否有什么不同。我的测试表明,背景音乐的WAV、caf、vs MP3和声音效果的WAV、vs caf在XCode的调试会话中使用的内存量是相同的。我看不出音频性能有什么不同。我还惊讶地发现MP3循环很好。MP3听上去肯定不如其他2个好。我将继续使用WAVs,直到我需要减小应用程序的大小(只有72MB)。在这一点上,我可能会去咖啡馆。我的游戏音乐WAV是28 MB,而CAF文件只有9.3 MB。我不喜欢MP3的声音。CAF和MP3都比WAV安静。