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

标签 ios avfoundation avcapturesession

作为预设,AVCaptureSessionPresetHigh 对我来说很有意义。硬件总是在变化,可以选择告诉 AVCapture “我想要给定当前硬件,你能给我的最高质量”是有意义的,但让我发疯的只是因为我想将 session 设置为抽象值,并不意味着我不需要知道它显示的分辨率。

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

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

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

最佳答案

给定 AVCaptureDevice,您应该能够在 formats 处枚举或检查 activeFormat,然后查看 highResolutionStillImageDimensionsAVCaptureDeviceFormat 的。

关于ios - 后置和前置摄像头的 AVCaptureSessionPresetHigh 的所有分辨率是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27830002/

相关文章:

ios - swift3 错误 : Argument labels '(configuration:, delegate:, delegateQueue:)' do not match any available overloads

ios - AVSpeechSynthesizer 需要在重新开始之前完成

swift - 如何开始在 Swift 3 中重新编码 AVCaptureSession?

avfoundation - 如何从具有正确方向的 AVCapturePhoto 生成 UIImage?

ios - 使用 NSUserDefaults

ios - 只有屏障任务的并发队列

html - Bootstrap 响应表不会在 iOS 设备上垂直滚动

iphone - 使用avfoundation捕捉图像,但捕捉速度不能太快

swift - 如何从 AVAsset 或 AVAssetTrack 获取文件扩展名

macos - macOS 上的多个 AVCaptureSession。正确的做法是什么?