6

我想检查用户的 iPhone 是否支持全高清视频捕捉。我发现,我应该问 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 上运行良好(它确实支持全高清拍摄),但在 iPhone 4 上也尝试设置预设,但显然失败了。我究竟做错了什么?

提前致谢, 马蒂亚斯

4

1 回答 1

18

在将输入添加到捕获会话后,您是否调用了 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;
}
于 2013-07-05T07:53:41.677 回答