音量按钮崩溃按AVAudioPlayer

时间:2017-03-09 21:41:58

标签: ios swift avaudioplayer avaudiosession

当我点按音量按钮时,我的应用程序崩溃了。在我的视图控制器中,我在setActive上呼叫AVAudioSession.sharedInstance(),当用户点按按钮时,我会播放AVAudioPlayer的歌曲。在此视图控制器中,每当按下音量按钮时,播放器是否正在播放,应用程序将与EXC_BAD_ACCESS崩溃。我在调试器中看到一条错误消息,偶尔会抱怨outputVolume的键值观察。

为什么我的应用崩溃了?

一个CLUE:我可以通过两种方式找到导致崩溃的视图控制器。一种方法导致崩溃而另一种方法不导致崩溃。无论哪种方式,我都以相同的方式将视图控制器推送到导航控制器。

1 个答案:

答案 0 :(得分:1)

你添加了类似的东西吗? :

let audioSession = AVAudioSession.sharedInstance()
    audioSession.addObserver(self, forKeyPath: "outputVolume",
                             options: NSKeyValueObservingOptions.new, context: nil)

如果你这样做,那么你需要覆盖这个方法,并在其中做任何你需要的事情:

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    if keyPath == "outputVolume"{

    }
}