canSetSessionPreset:AVCaptureSessionPreset1920x1080 возвращает "да" на iPhone 4

Я хочу проверить, поддерживает ли iPhone пользователя захват видео full HD. Я узнал, что я должен спросить сеанс AV, если

avSession = [[AVCaptureSession alloc] init];
    [avSession beginConfiguration];
    if ([avSession canSetSessionPreset:AVCaptureSessionPreset1920x1080]) {
        avSession.sessionPreset = AVCaptureSessionPreset1920x1080;
        NSLog(@"FULLHD");
    } else {
        avSession.sessionPreset = AVCaptureSessionPreset1280x720;
        NSLog(@"HDREADY");
    }
    [avSession commitConfiguration];

это отлично работает на iPhone 5 (который действительно поддерживает захват full HD), но на iPhone 4 тоже пытается установить предустановку, но явно терпит неудачу. Что я делаю не так?

спасибо заранее, Матиас!--2-->

1 ответов


вы вызывали canSetSettingPreset после добавления ввода в сеанс захвата?

[captureSession addInput:captureInput]; // <--- you should add an input before canSetSessionPreset
[captureSession addOutput:captureOutput];


if( [captureSession canSetSessionPreset:AVCaptureSessionPreset1280x720] == YES ) {
    captureSession.sessionPreset = AVCaptureSessionPresetiFrame1280x720;
} else {
    captureSession.sessionPreset = AVCaptureSessionPreset640x480;
}