gpt4 book ai didi

ios - 了解 AVCaptureSession session 预设的分辨率

转载 作者:技术小花猫 更新时间:2023-10-29 10:13:26 25 4
gpt4 key购买 nike

我在 iOS 中访问相机并使用 session 预设:

captureSession.sessionPreset = AVCaptureSessionPresetMedium;

非常标准的东西。但是,我想提前知道由于此预设我将获得的视频分辨率(特别是因为取决于设备,它会有所不同)。我知道网上有表格你可以查一下(比如这里:http://cmgresearch.blogspot.com/2010/10/augmented-reality-on-iphone-with-ios40.html)。但我希望能够以编程方式获得它,这样我就不会仅仅依赖魔数(Magic Number)。

所以,像这样(理论上):

[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);

我不确定最后一步,我自己也没有尝试过。刚刚在文档中发现并认为它应该有效。

在 Xcode 中搜索 CMVideoDimensions,您将找到 RosyWriter 示例项目。看看那个代码(我现在没时间看)。

关于ios - 了解 AVCaptureSession session 预设的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7790402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com