Function 如何停止或暂停播放音乐敏捷的

Function 如何停止或暂停播放音乐敏捷的,function,audio,swift,Function,Audio,Swift,我需要知道当按下暂停按钮时,如何停止或暂停正在播放游戏主题曲的SKAction。我使用的代码是为了在按下按钮但按钮不工作时删除操作。这段代码在我的游戏场景类中 func startGameMusic() { runAction (SKAction.playSoundFileNamed("theme.mp3", waitForCompletion: true), withKey: "themeSong") } func stopGameMusic() { self.removeA

我需要知道当按下暂停按钮时,如何停止或暂停正在播放游戏主题曲的SKAction。我使用的代码是为了在按下按钮但按钮不工作时删除操作。这段代码在我的游戏场景类中

func startGameMusic() {
    runAction (SKAction.playSoundFileNamed("theme.mp3", waitForCompletion: true), withKey: "themeSong")
}

func stopGameMusic() {
    self.removeActionForKey ("themeSong")
}
当在GameViewController类中按下暂停按钮时,将调用stopGameMusic函数

@IBAction func didPause(sender: UIButton) {
    if self.scene.paused == false{
        self.scene.stopTicking()
        self.scene.paused = true
        self.scene.stopGameMusic()        
    }
}
或:


我自己刚刚完成了暂停按钮的编码;看起来像是Swiftris的演示。我是从视图控制器而不是场景中完成的。播放一次的声音会在视图控制器中进行编码,就像游戏结束一样,所以为什么不将它们放在一个位置呢?我为音频添加了以下几行代码:

import AVFoundation
然后在类函数中

var backgroundAudio = AVPlayer(URL:NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("theme",ofType:"mp3")!))

var gameStatus:Bool = true
然后在我的IBAction函数中链接到一个暂停按钮

if(gameStatus == true {

    scene.stopTicking()

    backgroundAudio.pause()

    gameStatus = false

else {

     scene.startTicking()

     backgroundAudio.play()

     gameStatus = true

}
说明:AVFoundation为您提供了大量的音频/视频工具 gameStatus变量让我知道它是否已暂停。真=开 如果打开并按下“暂停”,则场景停止滴答声,音频暂停,游戏状态变为“关闭”。
如果游戏状态为false,则该按钮将激活场景计时器并在其停止的位置拾取音频。游戏恢复后,gameStatus将设置为true。尚未添加主题曲的run forever功能。

如何知道是否正在调用didPause?它与按钮的动作有关吗?添加NSLog或调试器断点以确认调用了didPause。是的,之所以调用didPause,是因为屏幕上的项目随着每次勾号移动,并且当您按下调用函数停止勾号的按钮时,它们停止移动任何帮助?我不知道为什么你的StartMemusic中没有删除这个函数,你指定的waitForCompletion:true。也许你不能停下来,因为玩家一直玩到游戏结束——没有中断。试试false,然后看看是否可以暂停。不,很遗憾,这不起作用
if(gameStatus == true {

    scene.stopTicking()

    backgroundAudio.pause()

    gameStatus = false

else {

     scene.startTicking()

     backgroundAudio.play()

     gameStatus = true

}