当应用转换为后台时,AVAudioPlayer
在后台任务中停止:
func stop() {
var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid
backgroundTask = UIApplication.shared.beginBackgroundTask() {
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = UIBackgroundTaskInvalid
}
DispatchQueue.global(qos: .default).async {
self.audioPlayer?.pause()
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = UIBackgroundTaskInvalid // Symbolic breakpoint stops here
}
}
当发布AVAudioPlayer
通知时,上面的函数会被包含UIApplicationDidEnterBackground
的视图控制器调用。
我仍然在第backgroundTask = UIBackgroundTaskInvalid
行收到错误:
// Can't endBackgroundTask: no background task exists with identifier 1f, or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.`
当我删除该行时,我没有错误。我在SO上查看了类似的问题,但他们没有帮助。
导致此错误的原因是什么?