AV Foundation相机预览图层会放大,如何缩小?

cha*_*ram 10 avfoundation ios

我目前使用的应用程序具有使用Zxing库(http://code.google.com/p/zxing/)连续扫描QR /条形码的主要功能.对于连续帧捕获,我曾经初步化AVCaptureSession和AVCaptureVideoOutput,AVCaptureVideoPreviewLayer在苹果问答http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html中描述.

我的问题是,当我以前运行相机预览时,我可以通过视频设备看到的图像比我们通过iPhone的静态相机看到的图像大得多(1.5倍).我们的客户需要在扫描时将iPhone与条形码保持5厘米左右的距离,但如果您将iPhone保持在该参数下,则整个QR码将不可见并且解码失败.为什么iPhone 4中的摄像机放大图像(通过AVCaptureVideoPreviewLayer查看)?

esc*_*ter 16

这是AVCaptureSession视频预设的功能,可以使用.sessionPreset属性访问.例如,在配置captureSession之后,但在启动之前,您将添加

captureSession.sessionPreset = AVCaptureSessionPresetPhoto;
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档:

iOS参考文档

视频的默认预设为1280x720(我认为),其分辨率低于相机支持的最大分辨率.通过使用"照片"预设,您将获得原始相机数据.


Chr*_*les 6

您会看到内置iPhone相机应用程序的相同行为.在静态和视频捕获模式之间切换,您会注意到默认的缩放级别会发生变化.您在静止模式下看到更宽的视图,而视频模式稍微放大.

我的猜测是连续视频捕捉需要使用相机传感器的较小区域才能达到最佳效果.如果使用整个传感器,系统可能无法维持30 fps.使用较小的传感器区域可以"放大"到场景中.


cha*_*ram 4

我再次回答我自己的问题。这个问题在 Apple Dev 论坛上也没有得到解答,因此我直接向 Apple 提出了技术支持请求,他们回复说这是一个已知问题,将在未来版本中修复并发布。因此,我们除了拭目以待之外,别无他法。