4

在使用受控的计时器间隔发射大约 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"];
4

3 回答 3

2

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

于 2013-12-18T13:28:04.300 回答
2

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

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

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

于 2013-12-01T22:22:22.147 回答
0

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

于 2015-04-17T07:09:10.187 回答