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

标签 ios swift xcode6 avaudioplayer

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

相关文章:

ios - Xcode 6 找不到 cocoapods 库

ios - 在 iOS 上使用多项选择应用程序实现多项问题的建议

ios - UIImageView 上的点击手势

ios - API 请求队列的最佳实践

ios - cocoapods 重复符号 _OBJ_METACLASS_$PodsDummy_Pods_xxx

ios - 如何在iOS8 Objective c中设置带有图像的UIPageControl?

ios - 关于 KVO 引用计数

ios - 以编程方式添加 ARSCNView

ios - 如何上传用户个人资料图片

uitableview - 意外的表重新加载/刷新有些延迟