AVCaptureSession с videoDataOuput и stillImageOutput
Я пишу приложение, в котором я использую AVCaptureSession с AVCaptureVideoDataOutput для получения буферов семплов, обнаружения некоторых точек и отображения в реальном времени.
Пользователь также имеет возможность захватить изображение.
Проблема в том, что, поскольку я использую тот же сеанс, качество изображения для захвата неподвижных изображений такое же, как и для видео.
Я использую captureOutput:didOutputSampleBuffer:fromConnection: метод делегата для захвата кадров и captureStillImageAsynchronouslyFromConnection: для захвата неподвижных изображений
Мне интересно, есть ли способ захвата кадров в AVCaptureSessionPresetMedium и при захвате изображения, переключиться на AVCaptureSessionPresetPhoto?
1 ответ
Вы можете изменить сеанс sessionPreset
свойство во время сеанса.
Измените это на AVCaptureSessionPresetPhoto
до захвата изображения, а затем вернуться к AVCaptureSessionPresetMedium
в блоке завершения captureStillImageAsynchronouslyFromConnection:completionHandler:
,
Имейте в виду, что изменение предустановки приведет к кратковременному отключению камеры во время ее переключения, поэтому может быть затруднительно мгновенно сделать снимок определенного кадра, но на самом деле нет никакой гарантии, что AVCaptureStillImageOutput
"s captureStillImageAsynchronouslyFromConnection:
сделано, когда это будет сделано.:)