Xcode 8音频停止AVAudio
问题描述:
我试图停止SKAction,每次我按下一个按钮(这是在背景上的不同位置随机生成的)播放声音,但我希望能够做到这一点调用一个动作。我试图找出大概2个小时,现在绝对没有成功。我的代码,我试图停止行动如下:Xcode 8音频停止AVAudio
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)
}
对于任何问题只问我!
答
我的建议没有为实际的斯威夫特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
}
存在还有SKAudioNode但最近很多人都像一个坏呼啸的一些问题声音,我不知道如果iOS 10解决这个问题。这是SKAudioNode问题的一个例子:https://www.kingsware.de/2016/07/16/using-avfoundation-to-play-audio-in-an-skaction-in-spritekit/ –
谢谢你尝试以帮助我,但我昨天晚上工作了大约3个小时后才知道它是一个if语句和一行简单的代码。但是,我已经开始讨论一个新问题。我试图做一个计时器,当应用程序关闭时触发,以便我可以发送通知到“回来”。如果你能帮我解决这个问题,那会很棒。 –
按照SO规则的说明打开一个新问题,以便您可以编写所有必要的代码,人们可以专注于您的新问题,我很乐意为您提供帮助。 –