AVFoundation:返回第一屏时防止背景音乐播放两次

AVFoundation: prevent background music playing twice when returning to first screen

目前我有一个使用 AVFoundation 播放背景音乐的主屏幕。如果你点击播放音乐停止(这是我想要的)。

如果您转到说明屏幕,音乐会继续(我想要),但是当您单击 return 到主屏幕时,背景音乐会继续(我想要),但是新曲目会重新开始顶部。

在我看来,我最需要的是一个 if 语句,当我 return 到主屏幕(如果它已经在播放)时,它可以防止音乐重新启动。我搜索了互联网,但找不到任何可行的建议。

这是我目前正在使用的,

class firstPageViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        backgroundMusic = self.setupAudioPlayerWithFile("background", type:"mp3")
        backgroundMusic.volume = 0.3
        backgroundMusic.numberOfLoops = -1
        backgroundMusic.play()


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }


    var backgroundMusic = AVAudioPlayer()

    func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer  {
        //1
        var path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
        var url = NSURL.fileURLWithPath(path!)

        //2
        var error: NSError?

        //3
        var audioPlayer:AVAudioPlayer?
        audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)

        //4
        return audioPlayer!
    }



    @IBAction func startGame(sender: UIButton) {

        backgroundMusic.stop()

    }

    @IBAction func instructionsButton(sender: UIButton) {

}
var isMusicPlaying = 0

class firstPageViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    backgroundMusic = self.setupAudioPlayerWithFile("background", type:"mp3")

    if isMusicPlaying == 0 {
    backgroundMusic.volume = 0.3
    backgroundMusic.numberOfLoops = -1
    backgroundMusic.play()
    }

    if backgroundMusic.playing == true {
    isMusicPlaying = 1
    }


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}


var backgroundMusic = AVAudioPlayer()

func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer  {
    //1
    var path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
    var url = NSURL.fileURLWithPath(path!)

    //2
    var error: NSError?

    //3
    var audioPlayer:AVAudioPlayer?
    audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)

    //4
    return audioPlayer!
}