切换多个视图控制器时,如何在 didMoveToView() 中调用一次歌曲?
Posted
技术标签:
【中文标题】切换多个视图控制器时,如何在 didMoveToView() 中调用一次歌曲?【英文标题】:How to call a song in didMoveToView(), once, when switching through several view controllers? 【发布时间】:2016-08-11 01:02:10 【问题描述】:我有一个与这个家伙一年前问过的问题类似的问题。不同的是我无法修复它。
How can I continuously play background music while switching to different views using swift?
一位用户这样回答他的问题: “你可以从 AppDelegate 开始和停止你的音乐......最好的方法是创建一个 MusicPlayer 类,在 AppDelegate 中实例化它并在其中调用开始和停止方法......
你有足够的经验来写这样的东西吗?
或者我应该帮助你吗?”
也许我需要编辑应用委托?下面是我的 viewDidLoad 函数的样子。这是我调用音频的地方,但是每次我加载视图控制器时,除了第一次加载之外,它还会加载并播放歌曲。无论我在哪个视图中,如何播放将加载到视图控制器中并在应用程序运行时播放的歌曲?
override func viewDidLoad()
super.viewDidLoad()
let path = NSBundle.mainBundle().pathForResource("Theme", ofType: "wav")
let soundURL = NSURL(fileURLWithPath: path!)
do
try theme = AVAudioPlayer(contentsOfURL: soundURL)
theme.prepareToPlay()
catch let err as NSError
print(err.debugDescription)
// trying to make the music refrain from playing simultaneously
if !theme.playing
theme.play()
theme.numberOfLoops = -1
【问题讨论】:
【参考方案1】:只需将所有音频播放器代码放入应用程序委托文件的 didFinishLaunchingWithOptions 方法中即可。这将在应用程序首次启动时仅播放一次音频文件,直到被告知不要播放为止。
【讨论】:
以上是关于切换多个视图控制器时,如何在 didMoveToView() 中调用一次歌曲?的主要内容,如果未能解决你的问题,请参考以下文章
切换标签栏项目时,UINavigationController 如何将其整个视图控制器表示层次结构保存在内存中?