您好我正在尝试将相机的缩放比例增加到我应用程序的最高级别。
然而,在将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>
此代码不会影响相机的全部变焦。
我做错了什么?
答案 0 :(得分:1)
最大系数为1.0表示格式无法缩放。
您的代码没有错误。
正如文档所说,如果device.ActiveFormat.VideoMaxZoomFactor == 1
,缩放功能不可用。
您可以调试device.ActiveFormat.VideoMaxZoomFactor
的值以查看它是否为1。