AVCaptureSession在ios8中的主线程上阻止UI

时间:2014-09-25 18:05:42

标签: ios8 avcapturesession avcapture

我们的应用使用AVCaptureSession进行qr /条形码扫描。有一个简单的关闭按钮在iOS 8中没有响应。

输出缓冲区似乎正在重载主UI线程。

看起来当前输出在主线程上:

[captureOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];

我应该在一个单独的线程上运行这个吗?当前尝试在后台线程上运行失败。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的困难。我发现UI线程被样本缓冲区委托的captureOutput(AVCaptureOutput,CMSampleBuffer,AVCaptureConnection)方法中所做的工作所累。我把那个工作从主线程上移开了,瞧!一切都很好。

用DispatchQueue.global()代替DispatchQueue.main可以解决问题。