首页 文章

如何使用 swift 切换到不同视图时连续播放背景音乐?

提问于
浏览
1

一般来说,我对快速编码很新。我现在正在制作游戏,我添加了一些背景音乐,这一切都很好。我甚至想知道如何在切换到不同的视图时连续播放音乐,但每次我回到“主菜单”视图,我告诉游戏开始播放背景音乐,它重新开始。我想要它做的是在用户启动应用程序时开始播放并保持循环直到用户关闭应用程序。我使用这段代码来启动背景音乐:

var backgroundMusicPlayer: AVAudioPlayer!

func playBackgroundMusic(filename:String){let url = NSBundle.mainBundle().URLForResource(filename,withExtension:nil)if(url == nil){println(“找不到文件:(filename)”)return}

var error: NSError? = nil
backgroundMusicPlayer =
    AVAudioPlayer(contentsOfURL: url, error: &error)
if backgroundMusicPlayer == nil {
    println("Could not create audio player: \(error!)")
    return
}

backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()

}

我把这段代码放在我的 Home View Controller 中(这是人们在打开应用程序时看到的第一个屏幕)

var player = AVAudioPlayer()

if  player.playing {
    player.play()
} else {
    playBackgroundMusic("BackgroundMusic.m4a")
}

现在我虽然如此:如果音乐正在播放,它继续播放,ELSE 再次开始播放音乐。但是现在它只是开始播放音乐,即使音乐是在我来自的视图上播放的。我在其他 2 个视图中使用了这段代码来使音乐连续播放并且工作正常:

func resumeBackgroundMusic() {
   if let player = backgroundMusicPlayer {
       if !player.playing {
           player.play()
       }
   }

}

1 回答

  • 2

    你可以从 AppDelegate 开始和停止你的音乐...最好的方法是创建一个 MusicPlayer 类,在 AppDelegate 中实例化它并在其中调用 start 和 stop 方法......

    你有足够的经验来写这样的东西吗?

    或者我应该帮你吗?

相关问题