如何在Swift中使用按钮和if / else来停止背景音乐?

时间:2015-07-31 09:29:06

标签: ios swift sprite-kit

在我的游戏中,我为GameScene添加了一个按钮并播放音乐:

let url = NSBundle.mainBundle().URLForResource("Happy Background Music", withExtension: "mp3")
let bgMusic = AVAudioPlayer(contentsOfURL: url, error: nil)

@IBAction func SoundOnOff(sender: UIButton) {
    bgMusic.numberOfLoops = -1
    bgMusic.play()
}

并且播放了音乐,但我想添加一个if,当按下按钮时音乐将停止。如果我应该写什么?

3 个答案:

答案 0 :(得分:1)

AVAudioPlayer有一个内置属性playing,您可以使用它来决定是播放还是暂停音乐:

@IBAction func SoundOnOff(sender: UIButton) {
    if bgMusic.playing {
        bgMusic.pause()
    } else {
        bgMusic.numberOfLoops = -1
        bgMusic.play()
    }
}

答案 1 :(得分:1)

使用此更改代码,

(string) $xml[0]->succes;
(string) $xml->succes;
(string) $xml->affiliate_signup_response->succes;

修改:说明

  

playing- Property
   - 一个布尔值,指示音频播放器是否正在播放(true)或不播放(false)。 (只读)

答案 2 :(得分:1)

刚刚看到这只适用于iOS9及更高版本。因此,如果您定位iOS9,那么这是可能的。

如果您正在使用SpriteKit编写游戏,我建议您使用SKAudioNode课程来播放您的BGMusic。

let url = NSBundle.mainBundle().URLForResource("Happy Background Music", withExtension: "mp3")
let audioNode = SKAudioNode(URL:url)
audioNode.positional = false
audioNode.autoplayLooped = true
self.addChild(audioNode)

要暂停音乐,请创建SKAction ...

let pauseAction = SKAction.pause()
audioNode.runAction(pauseAction)

你也可以恢复它,但只是想找到那个代码......