SpriteKit:播放前预载入声音文件到内存中?

只是想知道这是否可能。 目前,我第一次在应用程序运行时播放声音文件,声音实际播放之前有一个明显的延迟(就像caching它什么的)。 之后,它立即播放没有问题,但如果我完全closures应用程序,并重新启动它,延迟将回到第一次播放声音。 这里是我用来播放声音的代码:

[self runAction:[SKAction playSoundFileNamed:@"mySound.caf" waitForCompletion:NO]]; 

你可以采取的一种方法是在场景的开始处加载声音:

YourScene.h:

 @interface YourScene : SKScene @property (strong, nonatomic) SKAction *yourSoundAction; @end 

YourScene.m:

 - (void)didMoveToView: (SKView *) yourView { _yourSoundAction = [SKAction playSoundFileNamed:@"yourSoundFile" waitForCompletion:NO]; // the rest of your init code // possibly wrap this in a check to make sure the scene's only initiated once... } 

这应该预加载声音,你应该可以通过调用场景中的动作来运行它:

 [self runAction:_yourSoundAction]; 

我已经在有限的情况下自己尝试过,似乎摆脱了延迟。