AVCaptureSession с videoDataOuput и stillImageOutput

Я пишу приложение, в котором я использую AVCaptureSession с AVCaptureVideoDataOutput для получения буферов семплов, обнаружения некоторых точек и отображения в реальном времени.

Пользователь также имеет возможность захватить изображение.

Проблема в том, что, поскольку я использую тот же сеанс, качество изображения для захвата неподвижных изображений такое же, как и для видео.

Я использую captureOutput:didOutputSampleBuffer:fromConnection: метод делегата для захвата кадров и captureStillImageAsynchronouslyFromConnection: для захвата неподвижных изображений

Мне интересно, есть ли способ захвата кадров в AVCaptureSessionPresetMedium и при захвате изображения, переключиться на AVCaptureSessionPresetPhoto?

1 ответ

Вы можете изменить сеанс sessionPreset свойство во время сеанса.

Измените это на AVCaptureSessionPresetPhoto до захвата изображения, а затем вернуться к AVCaptureSessionPresetMedium в блоке завершения captureStillImageAsynchronouslyFromConnection:completionHandler:,

Имейте в виду, что изменение предустановки приведет к кратковременному отключению камеры во время ее переключения, поэтому может быть затруднительно мгновенно сделать снимок определенного кадра, но на самом деле нет никакой гарантии, что AVCaptureStillImageOutput"s captureStillImageAsynchronouslyFromConnection: сделано, когда это будет сделано.:)

Другие вопросы по тегам