使用受控的定时器间隔拍摄约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"];
答案 0 :(得分:2)
我遇到了同样的问题,我想我有一个解决方案,但我不确定。我有一段时间没有看到同样的崩溃。
制作一个代表播放激光声音的SKAction
,并重复使用该对象。
我认为playSoundFileNamed:
应该是聪明的,不会在每次使用时从文件系统重新加载音频文件。但崩溃表明它确实会重新加载,至少偶尔会重新加载。保持SKAction重用意味着音频文件只加载一次。
答案 1 :(得分:2)
不知道为什么我没试过这个,但我只是更换了声音文件,似乎已经治好了。但是,如果音频文件出错,为什么它在崩溃之前会播放大约200次。
答案 2 :(得分:0)
我会使用更像Apple兼容的格式,例如AAC(.m4a
)作为声音文件。 Apple对.mp3
的态度并不太友好。但是,我认为该文件可以是Microsoft .wav
文件