2013-03-31 4 views
6

iPhoneがフルHDビデオキャプチャをサポートしているかどうかを確認したいと思います。私はcanSetSessionPreset:iPhone 4でAVCaptureSessionPreset1920x1080が 'yes'を返す

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

これは(実際にフルHDキャプチャをサポートしています)iPhone 5で正常に動作しますが、iPhone 4にプリセットを設定するには、あまりにもしようとしますが、明らかに失敗した場合、私は、AVセッションを依頼する必要があること、が分かりました。私は間違って何をしていますか?事前に

おかげで、 マティアス

+2

ここで同じ問題が発生します。これを行う:if([captureSession canSetSessionPreset:AVCaptureSessionPreset1920x1080] == YES){ [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

関連する問題