播放外部音频时暂停AVAudioPlayer

时间:2018-09-29 10:45:17

标签: ios avaudioplayer

我目前正面临一个问题,如果你们中的一些人正在解决这个问题并提出一个简单的解决方案,我会感到很高兴。

所以基本上,问题是: 有什么方法可以在出现一些外部声音(例如音乐,来电,通知等)时暂停正在进行的AVAudioPlayer。

我知道,对于检测到呼叫,有一个新的CXCallObserverDelegate可以为我们提供帮助,但是对于音乐,其余的内容是否有解决所有这些问题的简单解决方案?

就代码而言,一切正常,播放音频没有一个单一的问题。我有一个自定义路径和一个错误,错误返回nil。

NSError *avPlayerError = nil; NSData* mp3Data = [[NSData alloc] initWithContentsOfFile: path options: NSDataReadingMappedIfSafe error: &avPlayerError];

1 个答案:

答案 0 :(得分:1)

我正在为我的应用程序使用此代码:

在AppDelegate中,didFinishLaunchingWithOptions为任何传入的中断添加观察者

NotificationCenter.default.addObserver(self, selector: #selector(self.onAudioSessionEvent(noti:)), name: Notification.Name.AVAudioSessionInterruption, object: nil)

当发生任何中断时,该函数将被调用

@objc func onAudioSessionEvent(noti:Notification){
    if noti.name == Notification.Name.AVAudioSessionInterruption
    {
        if let value = noti.userInfo![AVAudioSessionInterruptionTypeKey] as? NSNumber {
            if value.uintValue == AVAudioSessionInterruptionType.began.rawValue {
                print("start interrupt")


            }else{
                print("end interrupt")

            }
        }
    }
}