gpt4 book ai didi

ios - 当我调用 ".stop()"方法时,Swift/Xcode6 AVAudioPlayer 崩溃

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

在我的类(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/

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