Увеличение Xamarin Set в 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>

Этот код ВООБЩЕ не влияет на зум камеры.

Что я делаю не так?


person RyeGuy    schedule 15.11.2017    source источник


Ответы (1)


определение videoMaxZoomFactor

Максимальный коэффициент 1,0 означает, что формат не поддерживает масштабирование.

В вашем коде нет ошибки.

Как сказано в документации, если device.ActiveFormat.VideoMaxZoomFactor == 1, масштабирование недоступно.

Вы можете отладить значение device.ActiveFormat.VideoMaxZoomFactor, чтобы увидеть, равно ли оно 1.

person ColeX - MSFT    schedule 16.11.2017
comment
Итак, если вы посмотрите на строку под текущим форматом, она имеет максимальный коэффициент масштабирования 16. - person RyeGuy; 16.11.2017
comment
каково значение device.ActiveFormat.VideoMaxZoomFactor - person ColeX - MSFT; 17.11.2017