SKAction playSoundFileNamed ERROR

时间:2013-11-26 23:04:47

标签: ios sprite-kit skaction

使用受控的定时器间隔拍摄约80张激光后,我收到此错误,因此每隔0.2秒触发一次。

*由于未捕获的异常'无法加载资源'而终止应用程序,原因:'无法加载资源squish.mp3' * 首先抛出调用堆栈:

这是我用来播放声音和制作激光的代码。 squish.mp3是一个在销毁对象时播放的音频文件。有人可以帮忙吗? SKAction不是很适合播放声音吗?

SKAction *sound = [SKAction playSoundFileNamed:@"lazer.mp3" waitForCompletion:NO];
[self runAction:sound];
[self removeActionForKey:@"sound"];
SKSpriteNode *laser = [SKSpriteNode spriteNodeWithImageNamed:@"fire"];

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我想我有一个解决方案,但我不确定。我有一段时间没有看到同样的崩溃。

制作一个代表播放激光声音的SKAction,并重复使用该对象。

我认为playSoundFileNamed:应该是聪明的,不会在每次使用时从文件系统重新加载音频文件。但崩溃表明它确实会重新加载,至少偶尔会重新加载。保持SKAction重用意味着音频文件只加载一次。

答案 1 :(得分:2)

不知道为什么我没试过这个,但我只是更换了声音文件,似乎已经治好了。但是,如果音频文件出错,为什么它在崩溃之前会播放大约200次。

答案 2 :(得分:0)

我会使用更像Apple兼容的格式,例如AAC(.m4a)作为声音文件。 Apple对.mp3的态度并不太友好。但是,我认为该文件可以是Microsoft .wav文件