当我回到原始VC时,音乐在歌曲上播放



我在我的应用程序中使用了 xcode 9 和 swift 4。在我的应用程序中,我在viewDidLoad中播放音乐。当我退出视图控制器转到另一个视图时,它继续像它应该的那样播放。当我回到那个视图控制器时,歌曲又开始播放了。这首歌与首次加载的歌曲重叠。你们对如何阻止这种情况发生有什么想法吗?

do
{
    let audioPath = Bundle.main.path(forResource: "APP4", ofType: "mp3")
    try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch
{
    //catch error
}
let session = AVAudioSession.sharedInstance()
do
{
    try session.setCategory(AVAudioSessionCategoryPlayback)
}
catch
{
}
player.numberOfLoops = -1
player.play()

它再次开始播放,因为您的viewDidLoad再次被调用,要求它再次播放。最简单的解决方法是保留一个静态布尔变量来跟踪,如果您已经进行了此调用。

static var isMusicPlaying: Bool = false

viewDidLoad中,您可以将代码放在调用播放的代码之前。

guard !isMusicPlaying else {
   return
}
isMusicPlaying = true

最新更新