AVFoundation相机预览屏幕提供错误的缩放

时间:2010-09-07 16:02:50

标签: iphone camera overlay zoom avfoundation

我目前正在开发一款具有相机功能的应用程序,带有自定义相机屏幕,具有预览屏幕和叠加层。

根据UIScreenCapture,我正在使用AVFoundation类和方法。

我遇到的问题是我从AVCaptureSession获得的预览数据太大了。如果我用那个屏幕拍照,而另一个用iPhone的默认相机应用程序,而不用移动iPhone,则缩放的差异很大太多了。

我需要将我的应用缩放与iPhone相机应用的默认设置相同。

我已经尝试将AVCaptureVideoPreviewLayer.videoGravity更改为其中任何一个可能的值,但无济于事。

拜托,对此问题的任何线索都非常感激。

3 个答案:

答案 0 :(得分:2)

Arcantos的解决方案大多是正确的。假设您使用的是iPhone 3G(或任何支持640x480相机的设备),那将会有效。 iPhone 4可能会遇到一些问题。

更正确的方法是测试可用性并应用此预设:

captureSession.sessionPreset = AVCaptureSessionPresetPhoto;

无论原始分辨率如何,都将使用原始相机数据。

答案 1 :(得分:1)

原来是一个决议问题。 它是通过使用

修复的
myCaptureSession.sessionPreset = AVCaptureSessionPreset640x480

请注意,iPhone 3g不支持,因此您必须询问设备是否支持

[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] supportsAvCaptureSessionPreset:AVCaptureSessionPreset640x480]

答案 2 :(得分:0)

预览窗格的宽高比是否与摄像头捕获数据的宽高比相同?如果没有,操作系统可能会更改缩放以使数据矩形符合您要求的宽高比。

相关问题