如何快速制作静音和取消静音按钮?

安基·库玛(Ankit kumar)

我正在尝试使Sprite Kit快速静音和取消静音。我可以使背景音乐静音,但是不能取消静音。这是一些代码供参考:

var backgroundMusicPlayer = AVAudioPlayer()
var speaker = SKSpriteNode(imageNamed: "speaker")
var nospeaker = SKSpriteNode (imageNamed: "nospeaker")

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)

    for touch in (touches as! Set<UITouch>) {
        let location = touch.locationInNode(self)
        if self.nodeAtPoint(location) == self.speaker{
            backgroundMusicPlayer.pause()
            self.nospeaker.anchorPoint = CGPointMake(0, 0.5)
            self.nospeaker.position = CGPointMake(CGRectGetMinX(self.frame) + self.speaker.size.width / 3, CGRectGetMaxY(self.frame) - self.speaker.size.height * 4)
            self.addChild(nospeaker)
        }
        if self.nodeAtPoint(location) == self.nospeaker{
            backgroundMusicPlayer.play()
        }
    }
}

如果有人可以帮助我实现这一目标,将不胜感激。以某种方式,我想触摸扬声器位置,将扬声器节点替换为nospeaker节点,然后暂停AVAudioPlayer。如果再次触摸该位置,则需要还原到扬声器节点并播放AVAudioPlayer。

何塞·拉米雷斯

昨晚添加音乐时,我才在游戏中这么做。

您所要做的就是拥有一个标志变量,该变量知道音乐是否正在播放。我做了一个布尔变量,称为静音。因为没有音乐,所以当我的游戏开始时,mutant等于true。这是我在用户触摸按钮时所拥有的代码。

    //I don't want music playing when the game starts
    var mute: Bool = true

    //Mute Button (music automatically is off)
    if muteButton.containsPoint(touchLocation) {

        if mute {
            //This runs if the user wants music
            println("The button will now turn on music.")
            mute = false
            backgroundMusicPlayer.play()
        } else {
            //This happens when the user doesn't want music
            println("the button will now turn off music.")
            mute = true
            backgroundMusicPlayer.pause()
        }
    }

我唯一遇到的问题是,将SKSPriteNode音量按钮更改为静音按钮时,它将不起作用。我不知道为什么 因此,我制作了一个单独的SKSpriteNode,它是一个红色x,用于在音乐暂停时显示。

基本上,它所做的就是检查音乐是否已经静音。如果是的话,它将取消静音并播放(这将使静音= false)。如果再次按下它,它会检查它是否未静音,因此它将打开音乐(静音= true)。

对于xCode 7.0 Swift 2.0编辑2015年9月19日

对于xCode 7和Swift 2,这应该是您的代码,除非您没有收到我所做的错误或已将其修复。

var backgroundMusicPlayer: AVAudioPlayer?

override func touchesBegan(touches: Set<UITouch>?, withEvent event: UIEvent!)

for touch: AnyObject in touches! {
        backgroundMusicPlayer!.pause()
        backgroundMusicPlayer!.play()
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何制作适当的静音命令,该命令在取消静音时静音,在静音时取消静音

静音和取消静音功能

静音和取消静音Swift Spritekit

如何识别静音/取消静音点击-解决

取消静音背景视频的按钮

如何在twilio视频通话中静音/取消静音暂停/取消暂停音频和视频

Azure Media Player的自定义静音和取消静音按钮

如何在WebRTC视频聊天中添加音频/视频静音/取消静音按钮

如何取消声音静音?

需要视频在按键时静音/取消静音(无按钮)

在iOS上的Objective-C中静音和取消静音

使麦克风静音和取消静音的命令

静音和取消静音命令 - Discord.js

如何使用复选框将应用静音/取消静音

如何使用pywin32静音/取消静音?

使用 AVPlayer 时,如何检测用户何时快速取消视频静音

使用jQuery视频静音/取消静音

从PC静音/取消静音android设备

Xubuntu 12.04联想T500硬件静音按钮不会取消静音

想要为全屏视频背景上的音频创建自定义静音/取消静音按钮

如何使应用程序中的按钮静音?

Twilio Video 在 Node.js 中静音和取消静音音频和视频

ubuntu静音与硬件静音按钮不匹配

索尼VAIO静音按钮

如何在 Corvid 中使文本静音/取消静音视频?

如何通过ubuntu中的命令行将所有输出和输入音频设备静音,取消静音并将其设置为全音量?

Javascript-如何在iframe中取消对YouTube视频的静音

如何在取消静音之前判断声音是否正在播放

WebRTC 视频流静音/取消静音在取消静音后不流式传输