我使用以下代码在我的MENU SKScene上播放音乐:
在SKScene下,我宣布音乐动作:
class MENU: SKScene { let action: SKAction = SKAction.playSoundFileNamed("gameMusic.wav", waitForCompletion: false)
在触摸开始的方法中,我在触摸按钮时播放声音.
self.runAction(action, withKey:"stopIce")
在我的didMoveToView下:我有以下代码在MENU场景加载时停止音乐.
self.removeActionForKey("stopIce")
当我触摸MENU SkScene上的按钮并转到我的关卡场景时,音乐播放完美.但是,当我转换回按钮所在的MENU Skene时,代码不会停止音乐?
self.removeActionForKey("stopIce")
我想在你回到MENU场景时停止所有声音,这样如果玩家触摸按钮再次转到Level SKScene,音乐就不会同时播放2首曲目.谢谢 :)
如果你能够瞄准iOS 9,那就有一个非凡的解决方案:SKAudioNode
.它可以让您随时播放音乐并停止播放,并在连接到节点时自动循环播放.
要尝试一下,请创建一个这样的属性:
var backgroundMusic: SKAudioNode!
然后将其添加到didMoveToView()
:
backgroundMusic = SKAudioNode(fileNamed: "music.m4a") addChild(backgroundMusic)
这就是开始玩所需要的一切!如果要停止,请使用:
backgroundMusic.runAction(SKAction.stop())