我使用以下代码在我的 MENU SKScene 上播放音乐:
在 SKScene 下我声明音乐 Action :
class MENU: SKScene {
let action: SKAction = SKAction.playSoundFileNamed("gameMusic.wav", waitForCompletion: false)
在触摸开始方法中,当触摸按钮时我会播放声音。
self.runAction(action, withKey:"stopIce")
在我的 didMoveToView: 下,我有以下代码来在 MENU 场景加载时停止音乐。
self.removeActionForKey("stopIce")
当我触摸菜单 SkScene 上的按钮并转换到我的关卡场景时,音乐完美播放。但是,当我转换回按钮所在的 MENU Skene 时,代码不会停止音乐?
self.removeActionForKey("stopIce")
我想在返回 MENU 场景时停止所有声音,这样如果玩家再次触摸按钮进入 SKScene 关卡,音乐就不会同时播放 2 首轨道。谢谢:)
最佳答案
如果您能够以 iOS 9 为目标,那么有一个出色的解决方案:SKAudioNode
。它可以让您播放音乐并随时停止它,而且当它连接到节点时它会自动循环。
要尝试一下,请创建一个如下所示的属性:
var backgroundMusic: SKAudioNode!
然后将其添加到didMoveToView()
:
backgroundMusic = SKAudioNode(fileNamed: "music.m4a")
addChild(backgroundMusic)
这就是开始游戏所需的全部!当你想让它停止时,使用这个:
backgroundMusic.runAction(SKAction.stop())
关于xcode - 在 Spritekit Swift 中停止音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442744/