[英]How to stop background music with button and if/else in Swift?
在我的游戏中,我为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,当按下按钮时音乐将停止。 如果我应该写什么?
AVAudioPlayer
具有内置属性playing
,您可以使用它来决定是播放还是暂停音乐:
@IBAction func SoundOnOff(sender: UIButton) {
if bgMusic.playing {
bgMusic.pause()
} else {
bgMusic.numberOfLoops = -1
bgMusic.play()
}
}
用这个改变你的代码,
let url = NSBundle.mainBundle().URLForResource("Happy Background Music", withExtension: "mp3")
do{
let bgMusic = try AVAudioPlayer(contentsOfURL: url!)
}catch{
print(error)
}
@IBAction func SoundOnOff(sender: UIButton) {
if bgMusic.playing {
bgMusic.stop()
} else {
self.bgMusic.play()
}
}
编辑:说明
玩 - 财产
- 一个布尔值,指示音频播放器是否正在播放(true)或不播放(false)。 (只读)
刚刚看到这只适用于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)
您也可以恢复它,但只是试图找到它的代码...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.