你好,我正在尝试增加相机的缩放到它在我的应用程序的最大水平。
然而,在将AvCapture设置为其最大值之后,它仍然处于屏幕上的最低缩放级别。下面是我的密码。
void Initialize()
{
var videoDevices = AVCaptureDevice.DevicesWithMediaType(AVMediaType.Video);
var cameraPosition = (cameraOptions == CameraOptions.Front) ? AVCaptureDevicePosition.Front : AVCaptureDevicePosition.Back;
var device = videoDevices.FirstOrDefault(d => d.Position == cameraPosition);
device.LockForConfiguration(out error);
if (error == null)
{
Console.WriteLine("Supports Preset");
var test = device.RampingVideoZoom;
var d = device.VideoZoomFactor;
device.VideoZoomFactor = device.ActiveFormat.VideoMaxZoomFactor;
}
device.UnlockForConfiguration();
while(device.RampingVideoZoom == true)
{
Console.WriteLine("Zooming camera"); //This line is never written
}
//See below for value this returns in Console
Console.WriteLine("Current Format");
Console.WriteLine(device.ActiveFormat);
}当前格式
<AVCaptureDeviceFormat: 0x1c48049a0 'vide'/'420v' 1920x1080, { 3- 30 fps}, HRSI:4096x2304, fov:59.680, supports vis, max zoom:16.00 (upscales @1.94), AF System:2, ISO:22.0-704.0, SS:0.000005-0.333333>此代码根本不影响摄像机的缩放。
我做错了什么?
发布于 2017-11-16 09:27:41
videoMaxZoomFactor定义
最大因数为1.0表示格式无法缩放。
您的代码中没有错误。
如文档所述,如果是device.ActiveFormat.VideoMaxZoomFactor == 1,缩放是不可用的。
您可以调试device.ActiveFormat.VideoMaxZoomFactor的值,以查看它是否为1。
https://stackoverflow.com/questions/47319113
复制相似问题