我正在 iOS 中访问相机并使用会话预设,如下所示:
captureSession.sessionPreset = AVCaptureSessionPresetMedium;
相当标准的东西。但是,我想提前知道由于此预设而获得的视频的分辨率(特别是因为根据设备的不同,它会有所不同)。我知道网上有一些表格你可以查一下(例如这里:http://cmgresearch.blogspot.com/2010/10/augmented-reality-on-iphone-with-ios40.html http://cmgresearch.blogspot.com/2010/10/augmented-reality-on-iphone-with-ios40.html)。但我希望能够以编程方式获得它,这样我就不仅仅依赖于神奇的数字。
所以,像这样(理论上):
[captureSession resolutionForPreset:AVCaptureSessionPresetMedium];
它可能返回 { width: 360, height: 480} 的 CGSize。我还没有找到任何这样的 API,到目前为止,我不得不等待获取我的第一个捕获的图像,然后查询它(由于我的程序流程中的其他原因,这并不好)。
我不是 AVFoundation 专业人士,但我认为要走的路是:
captureSession.sessionPreset = AVCaptureSessionPresetMedium;
AVCaptureInput *input = [captureSession.inputs objectAtIndex:0]; // maybe search the input in array
AVCaptureInputPort *port = [input.ports objectAtIndex:0];
CMFormatDescriptionRef formatDescription = port.formatDescription;
CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions(formatDescription);
我不确定最后一步,我自己也没有尝试过。刚刚在文档中发现它并认为它应该有效。
正在寻找CMVideoDimensions
在 Xcode 中,您将找到 RosyWriter 示例项目。看一下该代码(我现在没有时间这样做)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)