我正在尝试让tableviewcell在点击时停止应用中的所有声音。我知道如何使用soundEffect.stop() soundEffect.currentTime = 0
来停止声音,但我不知道如何将其应用于单元格,如果StopSound按钮位于另一个具有不同类的viewController上,则这不起作用。如何创建一个全局停止AVAudioPlayer并将其应用于单元格的函数?
答案 0 :(得分:0)
问题是玩家并不孤单。 Try this
要在另一个ViewController上停止AVAudioPlayer,您可以使用NotificationCenter。
示例......
第一次,在VC上添加功能,你需要停止AVAudioPlayer。
@objc func stopAVonThisVC() {
AVaudioPlayer.stop()
}
其次,在此VC上添加NotificationCenter观察者,然后在点击按钮后添加。
// At VC, where you need to stop AVAudioPlayer.
NotificationCenter.default.addObserver(self, selector:
#selector(stopAVonThisVC), name: NSNotification.Name("Stop at VC1"), object: nil)
// At VC2
NotificationCenter.default.post(name: NSNotification.Name("Stop at VC1"), object: nil)
抱歉英语不好。
答案 1 :(得分:0)
为您的项目创建一个BaseViewController
,并从那里继承所有视图控制器,
在BaseViewController中定义AVAudioPlayer
并从任何子类调用soundEffect.stop() soundEffect.currentTime = 0
,它应该解决问题。
示例:
class BaseViewController: UIViewController {
var audioPayer: AVAudioPlayer!
}
class ViewControllerA: BaseViewController {
//start or stop audio player
}
class ViewControllerB: BaseViewController {
//start or stop audio player
}