我目前正面临一个问题,如果你们中的一些人正在解决这个问题并提出一个简单的解决方案,我会感到很高兴。
所以基本上,问题是: 有什么方法可以在出现一些外部声音(例如音乐,来电,通知等)时暂停正在进行的AVAudioPlayer。
我知道,对于检测到呼叫,有一个新的CXCallObserverDelegate可以为我们提供帮助,但是对于音乐,其余的内容是否有解决所有这些问题的简单解决方案?
就代码而言,一切正常,播放音频没有一个单一的问题。我有一个自定义路径和一个错误,错误返回nil。
NSError *avPlayerError = nil;
NSData* mp3Data = [[NSData alloc] initWithContentsOfFile: path options: NSDataReadingMappedIfSafe error: &avPlayerError];
答案 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")
}
}
}
}