我们的应用使用AVCaptureSession
进行qr /条形码扫描。有一个简单的关闭按钮在iOS 8中没有响应。
输出缓冲区似乎正在重载主UI线程。
看起来当前输出在主线程上:
[captureOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
我应该在一个单独的线程上运行这个吗?当前尝试在后台线程上运行失败。
答案 0 :(得分:0)
我遇到了类似的困难。我发现UI线程被样本缓冲区委托的captureOutput(AVCaptureOutput,CMSampleBuffer,AVCaptureConnection)方法中所做的工作所累。我把那个工作从主线程上移开了,瞧!一切都很好。
用DispatchQueue.global()代替DispatchQueue.main可以解决问题。