我正在使用以下代码在我的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首曲目。谢谢:))
答案 0 :(得分:5)
如果您能够定位iOS 9,那么就有一个非常棒的解决方案:SKAudioNode
。它可以让您随时播放音乐并停止播放,并且当它连接到节点时会自动循环播放。
要尝试一下,请创建一个这样的属性:
var backgroundMusic: SKAudioNode!
然后将其添加到didMoveToView()
:
backgroundMusic = SKAudioNode(fileNamed: "music.m4a")
addChild(backgroundMusic)
这就是开始玩所需要的一切!如果要停止,请使用:
backgroundMusic.runAction(SKAction.stop())
答案 1 :(得分:2)
音频将继续播放,直到完成我相信,所以你需要做的是暂停它所在的SKNode
。如果SKNode
是一个您不想暂停的精灵,那么只需将子子项添加到专门用于播放音频的精灵中,然后暂停子节点