gpt4 book ai didi

ios - 停止在第三个 ViewController 上播放音乐 - Swift 4

转载 作者:搜寻专家 更新时间:2023-11-01 07:01:53 24 4
gpt4 key购买 nike

我的第一个 ViewController 上有一个简单的背景音乐循环,如下所示:

func setupMusic() {

if audioEnabled == true {

let soundFile = Bundle.main.path(forResource: "bgMusic", ofType: ".wav")

do {
try bgmusic = AVAudioPlayer (contentsOf: URL(fileURLWithPath: soundFile!))
} catch {
print (error)
}

bgmusic.numberOfLoops = -1
bgmusic.volume = 0.3
bgmusic.play()

}
}

我想知道如何停止在另一个场景中播放这种循环背景音乐,在我的例子中 - 当用户选择静音按钮时的“用户设置”屏幕。

bgmusic.stop() \\ Wont work because the object 'bgmusic' is not instantiated in the new scene?

最佳答案

选项 1

class Service {

static let shared = Service()
var gmusic :AVAudioPlayer?
}

try Service.shared.gmusic = AVAudioPlayer (contentsOf: URL(fileURLWithPath: soundFile!))

然后使用

Service.shared.gmusic?.stop()

选项 2

在 CurrentVC 中

 let settingsVc = //

settingsVc.delegate = self

present(settingsVc

//

 calss SettingsVC:UIViewController {

var delegate:CurrentVC?

func stop () {

delegate?.gmusic.stop()

}

关于ios - 停止在第三个 ViewController 上播放音乐 - Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com