AVCaptureSession输出滞后

时间:2011-05-09 21:12:06

标签: iphone objective-c avfoundation

我目前正在尝试实现一个非常简单的UIView来替换UIImagePickerController,并且在捕获图像时遇到滞后。

以下是我目前使用的课程: https://gist.github.com/963319

当我调用snapPicture时,委托会立即从captureOutput:didOutputSampleBuffer获取具有正确尺寸的图像,但不显示图像至少3秒,有时需要5或10秒。我已经尝试添加委托setNeedsDisplay和setNeedsLayout。有谁知道我在这里做错了什么或者可能导致这种延迟的原因是什么?

2 个答案:

答案 0 :(得分:1)

AVCaptureAudioDataOutput的文档说“在指定的调度队列中调用所有委托方法”,因此Alex下面的答案很好地表明了问题。

如果您执行此类操作而不是当前委托回调:

[委托performSelectorOnMainThread:@selector(usePicture :) withObject:image waitUntilDone:NO];

-usePicture:方法然后使用新图片调用委托。

适合我。虽然现在只在iPhone 4上测试过。

此致 埃德

答案 1 :(得分:0)

在camView中更新UI时切换到主线程/队列:didCaptureImage:?从主要线程以外的线程更新UI会导致问题。