后置和前置摄像头的 AVCaptureSessionPresetHigh 的所有分辨率是多少?

What are all the resolutions of AVCaptureSessionPresetHigh for both back and front cameras?

作为预设,AVCaptureSessionPresetHigh 对我来说很有意义。硬件总是在变化,可以选择告诉 AVCapture "I want the highest quality you can give me given current hardware" 是什么让我发疯,只是因为我想将会话设置为抽象值,并不意味着我不这样做需要知道它显示的分辨率。

确定当前分辨率的唯一方法是实际捕获帧并检查所述帧的大小。或者更糟糕的是,手动查找所有这些分辨率,创建一个查找字典,向设备询问它的型号,然后获取硬编码的分辨率。这是一个完整的 hack,但仍然比强制捕获帧然后向 UIImage 询问其帧大小要好。

我迫切需要这些信息,以便根据相机提供的纵横比动态做出决定。这么简单的查询为什么苹果没有接口呢?

有谁知道列出整个 Apple 硬件市场中两款相机的所有可能分辨率的资源?我可以 google 浏览一些内容,但我无法找到完整列表。

鉴于 AVCaptureDevice,您应该能够在 formats 处枚举或检查 activeFormat,然后查看结果 AVCaptureDeviceFormathighResolutionStillImageDimensions .