【发布时间】:2016-03-19 23:50:07
【问题描述】:
我有以下代码来(重新)启动AVAudioEngine 连接到AVAudioEngineConfigurationChangeNotification:
do {
try self.engine.start()
} catch {
DDLogError("could not start sound engine")
self.soundEnabled = false
return
}
self.engine 被定义为
private let engine = AVAudioEngine()
但是,我经常通过 Crashlytics 收到崩溃报告
致命异常:com.apple.coreaudio.avfaudio 错误 561015905
在包含try self.engine.start() 的行上。
561015905 是AVAudioSessionErrorCodeCannotStartPlaying,据我了解,这应该是NSError 错误代码,而不是异常,它应该被我上面代码中的空白catch 捕获。尽管如此,该应用程序似乎在那一点上崩溃了。我错过了什么?
我知道在某些情况下,应用程序在后台唤醒时可能会发生此错误,只要我能以某种方式捕捉到它的发生,我就可以接受,就像我认为 do/catch 可以做到的那样。
【问题讨论】:
-
我收到了类似的错误。你知道为什么会这样吗?
-
没有。我已经向 Apple 提交了错误报告,但尚未收到回复。同时我停止使用
AVAudioEngine。 -
@Mike 对此有何更新?您是否找到了比 sleep() 更好的解决方法?你有没有收到苹果的消息?从外观上看,这在 iOS 11 中仍然是一个问题。
-
正如我已经说过的,由于这个错误,我们已经停止使用
AVAudioEngine。此后,Apple 要求我们使用较新的 iOS 版本重现该错误(并在新 SDK 版本发布时发送自动消息以打开报告),但由于我们不再对该问题感兴趣,因此我们没有这样做。这意味着如果您仍然关心,您可能应该打开自己的错误报告。抱歉,我无法提供更多帮助,祝您好运。如果您愿意,我很乐意收到回复!
标签: ios swift avaudiosession avaudioengine