我正在为我的应用使用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()
答案 0 :(得分:0)
它再次开始播放,因为再次调用viewDidLoad
,要求它再次播放。最简单的解决方法是保留一个静态bool变量,以便在已经进行此调用时跟踪。
static var isMusicPlaying: Bool = false
在viewDidLoad
中,您可以将代码放在调用播放的代码之前。
guard !isMusicPlaying else {
return
}
isMusicPlaying = true