作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我收到了有关 firebase 崩溃的通知,这是消息:
[AVCaptureSession stopRunning] stopRunning may not be called between calls to beginConfiguration and commitConfiguration
我浏览了我的代码,最奇怪的部分是我从不打电话,也没有提到
beginConfiguration()
和
commitConfiguration()
.
CameraManager
class 这是触发崩溃的函数,它在 deinit 上调用:
func stop() {
guard isStarted else { return Log.w("CameraManager wasn't started") }
queue.async {
self.isStarted = false
self.isCapturingFrame = false
self.isCapturingCode = false
self.session?.stopRunning()
self.session = nil
self.device = nil
}
notificationCenter.removeObserver(self, name: UIApplication.didBecomeActiveNotification, object: nil)
layer.removeFromSuperlayer()
layer.session = nil
}
queue
只是一个串行调度队列。
beginConfiguration
和
commitConfiguration
.
最佳答案
我可以想象 layer.session = nil
将导致重新配置捕获 session (因为与预览层的连接已被删除)。既然你打电话 stopRunning()
异步,我想你可能会遇到竞争条件 stopRunning()
在配置更改的中间被调用。
我建议您尝试使清理调用同步( queue.sync { ... }
)或将层清理移动到 async
块。
关于ios - AVCaptureSession stopRunning() 神秘崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67810724/
最近我收到了有关 firebase 崩溃的通知,这是消息: [AVCaptureSession stopRunning] stopRunning may not be called between c
使用 Ray Wenderlich's QRCode reader from Chapter 22 of iOS7 Tutorials ,我正在成功读取我当前应用程序的二维码。我现在扩展它,在成功读取
我正在使用 swift 在 iOS 上构建条形码扫描器。当我第一次编写代码时,它工作得很好,但我最近回到编程并发现它抛出一些错误。我有一个退出扫描按钮,当用户按下按钮时,它应该退出扫描模式 这是退出扫
我是一名优秀的程序员,十分优秀!