AVCaptureSession указать пользовательское разрешение - PullRequest
1 голос
/ 18 марта 2012

Кто-нибудь знает, как установить пользовательское разрешение в пользовательской камере iOS с помощью AVFoundation (AVCaptureStillImageOutput)?

Я знаю, что вы можете выбрать предустановку с помощью AVCaptureSession, но мне нужно выходное разрешение 920x920 (не предусмотренопо предустановке).В настоящее время я использую AVCaptureSessionPresetHigh и изменяю размер UIImage после этого, но это кажется глупым и намного лишней, ненужной обработкой.

Ответы [ 2 ]

1 голос
/ 21 мая 2015

Вы не можете, но то, что вы можете сделать, это перебрать все AVCaptureDeviceFormat в поисках того, который ближе к вашему разрешению.Чтобы получить полный список всех доступных форматов, просто запросите устройство захвата, используя свойство -formats.
. Этот пример от Apple показывает, как выбрать лучшую частоту кадров:

- (void)configureCameraForHighestFrameRate:(AVCaptureDevice *)device
{
    AVCaptureDeviceFormat *bestFormat = nil;
    AVFrameRateRange *bestFrameRateRange = nil;
    for ( AVCaptureDeviceFormat *format in [device formats] ) {
        for ( AVFrameRateRange *range in format.videoSupportedFrameRateRanges ) {
            if ( range.maxFrameRate > bestFrameRateRange.maxFrameRate ) {
                bestFormat = format;
                bestFrameRateRange = range;
            }
        }
    }
    if ( bestFormat ) {
        if ( [device lockForConfiguration:NULL] == YES ) {
            device.activeFormat = bestFormat;
            device.activeVideoMinFrameDuration = bestFrameRateRange.minFrameDuration;
            device.activeVideoMaxFrameDuration = bestFrameRateRange.minFrameDuration;
            [device unlockForConfiguration];
        }
    }
}
0 голосов
/ 18 марта 2012

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

Захват изображения из видео с использованием AVFoundation

...