播放声音文件时启动时出现白屏 SKAction

White Screen appears at launch when a sound file played SKAction

我正在尝试获取要在 GameScene.swift 文件中播放的背景声音文件。但是每当我这样做并调用 run.SKAction 时,屏幕就会变白并且我会听到很多静电噪音直到它崩溃。当我注释掉 run.SKAction 时,游戏正常开始。我尝试将文件格式更改为 WAV、MP3、AAC、CAF。但同样的事情发生了。我检查了一下我是否拼错了什么,但我没有。

它给我一条消息说:"Message from debugger: Terminated due to memory issue"

重要说明:"waitForCompletion is set to TRUE it seems to work fine with a little static at the beginning of the soundtrack then it plays normally. but when "waitForCompletion" 设置为 FALSE 我得到白屏。我有时还会收到一条消息:

SKAction:加载声音资源时出错:"Entry.m4a"

我尝试了几个不同的配乐文件,但它总是会发生。

这是 GameScene() 的开头:

class GameScene: SKScene {


var SpaceShip2 = SKSpriteNode(imageNamed:"IntroSpaceShip")


var GameSceneSound = SKAction.playSoundFileNamed("BackgroundSound.wav", waitForCompletion: false) 


}

这里是我用来调用声音的函数:

func playsound(soundVariable: SKAction){

    run(SKAction.repeatForever(soundVariable))
}

这是我调用它的时间:

override func didMove(to view: SKView) {

    playsound(soundVariable: GameSceneSound)
}

谁能帮帮我!

提前致谢!

由于waitForCompletion设置为false,所以当运行时动作被认为是立即完成的。由于这是一个 repeatForever 动作,因此在第一个播放声音的动作完成之前 运行 秒重复该动作。第 2 次重复 运行s,立即导致第 3 次重复,导致第 4 次重复,等等。最终你用所有 SKActions 填满了太多内存,应用程序被终止 iOS。

我建议将 waitForCompletion 设置为 true。这样,在第一个动作完成播放声音之前,第二个动作不会开始。

希望对您有所帮助!