我正在使用captureOutput:didOutputSampleBuffer:fromConnection:
的{{1}}委托方法。在iPad上进行测试时,图像缓冲区大小总是360x480,这看起来很奇怪,我认为这将是iPad屏幕的大小。
AVCaptureVideoDataOutput
图像缓冲区是否有这么小的原因,即使在iPad上也是如此?
答案 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;