2013-03-31 3 views
6

Я хочу проверить, поддерживает ли iPhone пользовательский захват HD-видео. Я узнал, что я должен спросить AV сессии, еслиcanSetSessionPreset: AVCaptureSessionPreset1920x1080 возвращает «да» на iPhone 4

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 (который на самом деле поддерживает полный HD захвата), но на iPhone 4 пытается слишком установить пресет, но явно не удается. Что я делаю не так?

Спасибо заранее, Matthias

+2

такой же проблема здесь. Выполнение этого: if ([captureSession canSetSessionPreset: AVCaptureSessionPreset1920x1080] == ДА) { [captureSession setSessionPreset: AVCaptureSessionPreset1920x1080]; } else { [captureSession setSessionPreset: AVCaptureSessionPresetPhoto]; } работает на моем iPhone 5, но при запуске на моем iPhone 4 он пытается установить его на 1929X1080, и сеанс ничего не показывает. Если я заставляю предустановку фото, то она работает на iPhone 4. Кто-нибудь? – zumzum

ответ

15

Вы звоните 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; 
} 
+1

Да, это решение. Не могу проголосовать до сих пор, чтобы меньше репутации :( – mattem86

+1

@ user2228816 Все в порядке, что мой ответ помог вам :) Хорошего дня. – alones

+0

Считаете ли вы, что принимаете этот ответ @ user2228816? Это помогает построить сообщество. :) – grapeot