使用AVFoundation,我正在尝试使用用户可以打开或关闭的背景音乐。它设置为在应用程序的第一个屏幕出现时自动播放音乐。当切换到另一个ViewController(例如“设置”)时,音乐会继续播放,这很好。但是,当我单击后退按钮返回主屏幕时,音乐将重新开始。我搜索了相关的问题;然而,它似乎对我没用,或者它们有点不同。我想要它做的是,如果音乐已经播放,它将继续播放而不是重启。
这是我到目前为止所得到的:
import UIKit
import AVFoundation
var g_musicEffect: AVAudioPlayer = AVAudioPlayer()
class ViewController: UIViewController
{
//MARK: Actions
@IBAction func playButton(_ sender: UIButton)
{
performSegue(withIdentifier: "seguePlay", sender: self)
}
@IBAction func settingsButton(_ sender: UIButton)
{
performSegue(withIdentifier: "segueSettings", sender: self)
}
override func viewDidLoad()
{
super.viewDidLoad()
let musicFile = Bundle.main.path(forResource: "electronic", ofType: ".mp3")
do
{
try g_musicEffect = AVAudioPlayer(contentsOf: URL (fileURLWithPath: musicFile!))
}
catch
{
print(error)
}
g_musicEffect.play()
g_musicEffect.numberOfLoops = -1
}
答案 0 :(得分:0)
您是否在回到第一个视图控制器时使用unwind segue?即按下后退按钮使用正常的segue时,视图将再次加载,这就是您的实际问题。使用unwind segue。