gpt4 book ai didi

swift - 在不同的 ViewController 中停止 AudioPlayer

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

我有一个在 AVAudioPlayer 中播放的主菜单声音文件。

我想创建一个选项按钮,将我带到另一个 View Controller 。当我单击开关以选择“关闭”主菜单声音时。如何停止播放音频?

如何在不同的 ViewController 中访问音频播放器?

如果您需要更多信息,请告诉我。谢谢!

最佳答案

创建一个单例类,您可以在其中添加播放器并通过以下方式控制它:

import AVFoundation

class Singleton {
static let sharedInstance = Singleton()
private var player: AVAudioPlayer?

func play() {
guard let url = Bundle.main.url(forResource: "Sound", withExtension: "mp3") else { return }

do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)

player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)

guard let player = player else { return }

player.play()

} catch let error {
print(error.localizedDescription)
}
}

func stop() {
player?.stop()
}
}

无论何时你想开始播放声音,只需调用:

Singleton.sharedInstance.play()

每当你想停止声音时,只需调用:

Singleton.sharedInstance.stop()

这可以从所有 Controller 调用。

关于swift - 在不同的 ViewController 中停止 AudioPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48838364/

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