我有以下代码用于(重新)启动已连接到AVAudioEngineConfigurationChangeNotification
的AVAudioEngine
:
do {
try self.engine.start()
} catch {
DDLogError("could not start sound engine")
self.soundEnabled = false
return
}
self.engine被定义为
private let engine = AVAudioEngine()
然而,我经常通过Crashlytics收到崩溃报告,内容为:
Fatal Exception: com.apple.coreaudio.avfaudio error 561015905
在包含try self.engine.start()
的那一行发生了错误。
561015905是AVAudioSessionErrorCodeCannotStartPlaying
,根据我的理解,这应该是一个NSError
错误代码,而不是一个异常,应该被上面代码中的空白catch
捕获。但是,应用程序似乎在那一点上仍会崩溃。我错过了什么?
我知道有些情况下,应用程序在后台唤醒时可能会出现此错误,只要我能够捕获它的发生,就可以了,因为我认为我可以使用do/catch
来实现这一点。
AVAudioEngine
。 - MikeAVAudioEngine
。自那以后,苹果公司要求我们使用更新的 iOS 版本来重现该 bug(当新的 SDK 版本发布时,会发送自动化消息以打开报告),但由于这个问题对我们来说已经不再重要,所以我们没有这样做。也就是说,如果你仍然关心这个问题,你应该自己打开一个 bug 报告。很抱歉我不能提供更多帮助,祝你好运解决这个问题。如果你最终解决了它,我很想听到你的回音! - Mike