Xamarin - 设置放大AVCapture不起作用

时间:2017-11-15 23:32:05

标签: xamarin xamarin.ios avcapturedevice avcapture

您好我正在尝试将相机的缩放比例增加到我应用程序的最高级别。

然而,在将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>

此代码不会影响相机的全部变焦。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

videoMaxZoomFactor Definition

  

最大系数为1.0表示格式无法缩放。

您的代码没有错误。

正如文档所说,如果device.ActiveFormat.VideoMaxZoomFactor == 1,缩放功能不可用。

您可以调试device.ActiveFormat.VideoMaxZoomFactor的值以查看它是否为1。