2013-03-31 7 views
6

사용자가 가지고있는 iPhone이 풀 HD 비디오 캡처를 지원하는지 확인하고 싶습니다. 나는이 (실제로 풀 HD 캡처 지원) 아이폰 5에 잘 작동canSetSessionPreset : iPhone 4에서 AVCaptureSessionPreset1920x1080이 '예'를 반환합니다.

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

만약 내가는 AV 세션을 요청해야 것을 발견하지만, 아이폰 4는 설정을 설정하려면 너무 시도하지만 분명히 실패합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 사전에

감사합니다, 마티아스

+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