Ios 背景音乐继续重新启动。如何阻止它。
我创建了一个背景音乐的sharedInstance,并在第一个视图控制器的viewDidLoad中初始化它。但当我改变屏幕(通过segue)并返回到第一个屏幕时,音乐会重新启动。我相信这是因为viewDidLoad再次被调用,但我不希望每次回到这个屏幕时音乐都会重新启动Ios 背景音乐继续重新启动。如何阻止它。,ios,swift,avfoundation,segue,Ios,Swift,Avfoundation,Segue,我创建了一个背景音乐的sharedInstance,并在第一个视图控制器的viewDidLoad中初始化它。但当我改变屏幕(通过segue)并返回到第一个屏幕时,音乐会重新启动。我相信这是因为viewDidLoad再次被调用,但我不希望每次回到这个屏幕时音乐都会重新启动 我怎样才能使音乐不受干扰地继续播放 尝试在AppDelegate中启动背景音乐,不要将其绑定到任何特定的视图控制器 虽然您通常应该避免在AppDelegate中放入太多代码,但启动/初始化服务是一项启动任务,因此在那里是有意义的
我怎样才能使音乐不受干扰地继续播放 尝试在AppDelegate中启动背景音乐,不要将其绑定到任何特定的视图控制器
虽然您通常应该避免在AppDelegate中放入太多代码,但启动/初始化服务是一项启动任务,因此在那里是有意义的。我应该在“didFinishLaunchingWithOptions”中初始化它?我看到了其他解决方案,包括创建一个变量“isMusicPlaying”和一个if语句来每次检查。1。是的,如果您希望音乐在启动后立即启动,请将其放入
didfishlaunchingwithoptions
。2.保留一个变量也是一个潜在的解决方案,但这意味着您需要管理它,这可能会导致错误。您确定是在viewdiload
中启动音乐,而不是在viewdilease
中启动音乐吗viewDidLoad
在ViewController的生命周期中只能调用一次。您可以将deinit函数添加到FirstViewController中,查看它是否因某种原因被取消初始化,或者在开始播放音乐的位置设置断点,⌘-Optn点击它,并添加一条带有%B-%H
谢谢@Alex的日志消息,我在AppleLegate中这样做了。但我将尝试上述其他解决方案。