在我的类(class)“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 错误而崩溃...我认为这个问题与从不同类调用方法有关,因为当我将所有内容都放在一个类中时,不会出现任何问题。但是我需要一个类间解决方案。
最佳答案
AVMIDIPlayer 上的 .stop() 也有同样的问题。 super 简单的方法:
func stopMIDIPLayer() {
if let mp = self.mp {
if mp.playing {
mp.stop()
}
}
}
我的播放器是单例的,我也在我的 viewController 中调用 stopMIDIPlayer() 方法。
关于ios - 当我调用 ".stop()"方法时,Swift/Xcode6 AVAudioPlayer 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31064321/