captureOutput:didOutputSampleBuffer:fromConnection:即使在iPad上,图像缓冲区大小也始终为360x480

时间:2012-07-11 22:21:40

标签: objective-c ios cgimage avcapturesession

我正在使用captureOutput:didOutputSampleBuffer:fromConnection:的{​​{1}}委托方法。在iPad上进行测试时,图像缓冲区大小总是360x480,这看起来很奇怪,我认为这将是iPad屏幕的大小。

AVCaptureVideoDataOutput

图像缓冲区是否有这么小的原因,即使在iPad上也是如此?

1 个答案:

答案 0 :(得分:2)

AVCaptureSession的质量由sessionPreset属性确定,默认为AVCaptureSessionPresetHigh。它不关心捕获设备上屏幕的分辨率是多少;捕获质量是设备相机的一个功能。

如果您希望捕获分辨率更接近屏幕分辨率,则必须更改sessionPreset。请注意,没有任何预设直接对应任何屏幕分辨率,而是对应于常见的视频格式,如VGA,720p,1080p等:

NSString *const AVCaptureSessionPresetPhoto;
NSString *const AVCaptureSessionPresetHigh;
NSString *const AVCaptureSessionPresetMedium;
NSString *const AVCaptureSessionPresetLow;
NSString *const AVCaptureSessionPreset352x288;
NSString *const AVCaptureSessionPreset640x480;
NSString *const AVCaptureSessionPreset1280x720;
NSString *const AVCaptureSessionPreset1920x1080;
NSString *const AVCaptureSessionPresetiFrame960x540;
NSString *const AVCaptureSessionPresetiFrame1280x720;