2013-03-31 9 views
6

Chcę sprawdzić, czy iPhone, który obsługuje obsługuje przechwytywanie wideo Full HD. I okazało się, że należy zwrócić się do sesji AV, jeślicanSetSessionPreset: AVCaptureSessionPreset1920x1080 zwraca "tak" na 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]; 

Działa to dobrze na iPhone 5 (który rzeczywiście obsługuje pełne HD przechwytywanie), ale na iPhone 4 próbuje też ustawić preset, ale wyraźnie się nie powiedzie. Co ja robię źle?

Dzięki z góry, Matthias

+2

ten sam problem tutaj. Aby to zrobić: if ([captureSession canSetSessionPreset: AVCaptureSessionPreset1920x1080] == YES) { [captureSession setSessionPreset: AVCaptureSessionPreset1920x1080]; } else { [captureSession setSessionPreset: AVCaptureSessionPresetPhoto]; } działa na moim iPhonie 5, ale po uruchomieniu na moim iPhonie 4 próbuje ustawić go na 1929X1080, a sesja nic nie pokazuje. Jeśli wymuszam ustawienie zdjęcia, to działa na iPhone 4. Ktoś? – zumzum

Odpowiedz

15

Zadzwoniłaś canSetSettingPreset po dodać wejście do przechwytywania sesji?

[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

Tak, to jest rozwiązanie. Nie mogę głosować na teraz, na mniejszą reputację :( – mattem86

+1

@ user2228816 W porządku, że moja odpowiedź ci pomogła :) Miłego dnia. – alones

+0

Czy uważasz, że akceptujesz tę odpowiedź @ user2228816? Pomaga budować społeczność. :) – grapeot

Powiązane problemy