在我的班级“AudioHub”中我有这段代码
var myAudioPlayer = AVAudioPlayer()
func audioPlayer(audioName: String ) {
println("hey")
var error:NSError?
if let audioURL = NSBundle.mainBundle().URLForResource(audioName, withExtension: "mp3") {
myAudioPlayer = AVAudioPlayer(contentsOfURL: audioURL, error: &error)
myAudioPlayer.prepareToPlay()
myAudioPlayer.play()
} else if let error = error {
println(error.description)
}
}
在我的ViewController类中,我使用
初始化我的AudioHub类var bridge = AudioHub()
在我的ViewControllers viewDidLoad方法中,我调用
bridge.playAudio("testSound")
它开始播放声音很好...但是,我在ViewController类的按钮中嵌入了另一种方法,该方法应该阻止音频播放此代码:
bridge.stop()
每当我点击按钮时,程序就会因EXC_BAD_ACCESS错误而崩溃...我认为这个问题与从另一个类调用该方法有关,因为当我将所有内容保留在一个类中时没有任何问题。但是我需要一个班级间的解决方案。
答案 0 :(得分:0)
与AVMIDIPlayer上的.stop()相同。 超级简单的方法:
func stopMIDIPLayer() {
if let mp = self.mp {
if mp.playing {
mp.stop()
}
}
}
我的播放器是单身,我也是从我的viewController调用stopMIDIPlayer()方法。