Xcode 8 音频停止 AVAudio

Xcode 8 Audio Stop AVAudio

我试图停止 SKAction,每次按下按钮时我都会播放声音(这是在背景上的不同位置随机生成的),但我希望能够通过调用一个动作来做到这一点.我已经尝试解决这个问题大约 2 个小时,但完全没有成功。我试图停止操作的代码如下:

let clickSound = SKAction.playSoundFileNamed("Click.wav", waitForCompletion: false)
    //sound action
    let playCorrectSoundEffect0 = SKAction.playSoundFileNamed("Correct0.wav", waitForCompletion: false)
    //where im tying to create an action to stop the sound file above from playing
    let stopCorrectSoundEffect0 =
    let playCorrectSoundEffect1 = SKAction.playSoundFileNamed("Correct1.wav", waitForCompletion: false)
    let playCorrectSoundEffect2 = SKAction.playSoundFileNamed("Correct2.wav", waitForCompletion: false)
    let endSoundEffect = SKAction.playSoundFileNamed("GameOverSound", waitForCompletion: false)

谢谢,如果你能解释一下你是怎么做到的,那就太棒了!

我只是通过做一个 if 语句来解决这个问题,如果分数超过某个点,它会停止所有动作,然后播放想要的声音。它看起来像这样:

if scoreNumber >= 10 {
            removeAllActions()
            self.run(playCorrectSoundEffect1)
        }

有任何问题都可以问我!

我的建议不要因为实际而改变Swift 3,就是选择AVAudioPlayer在你的游戏中发出你的声音:

let path = Bundle.main.path(forResource: "sound.wav", ofType:nil)!
let url = URL(fileURLWithPath: path)

do {
    let sound = try AVAudioPlayer(contentsOf: url)
    clickSound = sound
    sound.play()
} catch {
    // couldn't load file 
}

如果你想停止声音,你应该使用它的stop()方法。但是如果你试图停止一个不存在的声音你的应用程序将会崩溃,所以最好先检查它是否存在,就像这样

if clickSound != nil {
    clickSound.stop()
    clickSound = nil
}