[英]AVFoundation Camera Preview Screen gives wrong zoom
我目前正在开发一款具有相机功能的应用程序,具有自定义相机屏幕,具有预览屏幕和叠加层。
我根据UIScreenCapture使用AVFoundation类和方法。
我遇到的问题是我从AVCaptureSession获得的预览数据太大了。如果我用那个屏幕拍照,另一个用iPhone的默认相机应用程序,而不移动iPhone,缩放的差异太大了。
我需要我的应用程序的缩放与iPhone相机应用程序的默认值相同。
我已经尝试将AVCaptureVideoPreviewLayer.videoGravity更改为其中任何一个可能的3个值,但无济于事。
请,这个问题的任何线索真的很感激。
Arcantos的解决方案大多是正确的。 假设您使用的是iPhone 3G(或任何支持640x480相机的设备),那将会有效。 iPhone 4可能会遇到一些问题。
更正确的方法是测试可用性并应用此预设:
captureSession.sessionPreset = AVCaptureSessionPresetPhoto;
无论原始分辨率如何,这都将使用原始相机数据。
原来是一个解决问题。 它是通过使用固定的
myCaptureSession.sessionPreset = AVCaptureSessionPreset640x480
请注意,iPhone 3g不支持,因此您必须询问设备是否支持它
[[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] supportsAvCaptureSessionPreset:AVCaptureSessionPreset640x480]
预览窗格的宽高比是否与摄像头捕获数据的宽高比相同? 如果没有,操作系统可能会更改缩放以使数据矩形符合您要求的宽高比。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.