声源无法加载Swift SKAction

Ree*_*ney 5 ios sprite-kit skaction swift

我有一个应用程序,每次触摸屏幕时播放声音文件.出于某种原因,应用程序会偶尔崩溃,并出现以下错误:

reason: 'Resource tick.mp3 can not be loaded'
Run Code Online (Sandbox Code Playgroud)

如果您需要它,这里是我每次点击屏幕时播放文件的方式:

runAction(SKAction.playSoundFileNamed("tick.mp3", waitForCompletion: false))
Run Code Online (Sandbox Code Playgroud)

这种情况不会经常发生,可能是应用程序的10次运行中的1次.大多数时候一切都按预期工作.我希望我知道我在做什么导致崩溃,但我不知道!我只是点击它看似没有什么不同于它没有崩溃的时间.然后突然间我得到了这个问题......

Ree*_*ney 5

如果您通过函数播放声音playSound,它将起作用

var soundFile = SKAction.playSoundFileNamed("bark.wav", waitForCompletion: false)
playSound(soundFile)
Run Code Online (Sandbox Code Playgroud)

播放声音:

func playSound(soundVariable : SKAction)
{
    runAction(soundVariable)
}
Run Code Online (Sandbox Code Playgroud)

  • @NikitaZernov 不,这不是同一件事,所以我不确定你为什么投反对票。预加载声音文件,然后通过“playSound”函数播放它可以防止崩溃。类似的问题以前已经被问过很多次了,这一直是解决方案。这被认为是 swift 的一个错误。我知道它看起来是一样的,但不要只是做出假设,因为在这种情况下你错了。 (5认同)