You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AVFoundation内置相机类型差异及摄像头选型适配咨询

AVCaptureDevice 后置摄像头类型差异与适配方案

基础类型定义与对应机型

首先纠正你之前整理的信息错误:

builtInWideAngleCamera 不是双摄设备,是单颗广角定焦摄像头,是所有iPhone都具备的基础后置摄像头硬件。你之前记录的双摄定义属于类型混淆。

各类型准确说明与对应机型如下:

  • builtInDualCamera:广角+长焦的双摄组合设备,对应iPhone 7 Plus、iPhone 8 Plus、iPhone X,你猜测它对应iPhone X的相机配置是正确的。
  • builtInDualWideCamera:超广角+广角的双摄组合设备,对应iPhone 11、iPhone 12 mini、iPhone 13 mini、iPhone SE(第三代)等非Pro线双摄机型,你猜测它对应iPhone 11的相机配置是正确的。
  • builtInTripleCamera:超广角+广角+长焦的三摄组合设备,对应iPhone 11 Pro及之后所有Pro系列三摄机型。
  • builtInUltraWideCamera:单颗超广角定焦摄像头,仅在搭载超广角硬件的iPhone 11及之后机型上暴露,属于单独硬件入口,一般不需要在默认选优场景调用。
  • builtInWideAngleCamera:单颗广角定焦摄像头,对应所有单摄iPhone(iPhone 6s及更早单摄机型、iPhone SE 1/2代),所有多摄iPhone也会同步暴露该单硬件入口。

适配问题解答

针对你提出的两个适配疑问,明确答复如下:

  1. 仅配置.builtInTripleCamera、.builtInDualCamera、.builtInWideAngleCamera三类无法覆盖所有iPhone后置摄像头:搭载超广角+广角双摄的机型(比如iPhone 11、12/13 mini)不会暴露builtInDualCamera类型(该类型仅适配老款广角+长焦双摄),如果不把builtInDualWideCamera加入列表,这些机型上只会 fallback 到单颗广角摄像头,无法使用双摄的硬件级无缝变焦、多摄协同能力。
  2. 是的,AVCaptureDevice.DiscoverySession只会返回你传入deviceTypes数组中包含的设备类型,如果你需要调用builtInWideAngleCamera,必须将其加入列表,否则不会返回对应设备。

修正后的最优设备选择代码

按照「三摄 > 超广角+广角双摄 > 广角+长焦双摄 > 单颗广角」的硬件优先级选择后置摄像头的实现如下,DiscoverySession返回的设备顺序和你传入的deviceTypes顺序一致,数组第一个元素就是当前设备能支持的最优摄像头:

import AVFoundation

class CameraManager {
    
    static let shared = CameraManager()
    let discoverySession = AVCaptureDevice.DiscoverySession(
        deviceTypes: [
            .builtInTripleCamera,
            .builtInDualWideCamera,
            .builtInDualCamera,
            .builtInWideAngleCamera
        ],
        mediaType: .video,
        position: .back
    )
    
    func getBestDevice() -> AVCaptureDevice? {
        let devices = discoverySession.devices
        guard !devices.isEmpty else { fatalError("Missing capture devices.")}
        return devices.first
    }
}

调用方式保持原有逻辑即可:

CameraManager.shared.getBestDevice()

补充提示:如果你需要单独调用超广角、长焦的独立硬件做特殊功能,再把.builtInUltraWideCamera、.builtInTelephotoCamera加入deviceTypes列表即可,普通视频拍摄场景用组合设备就能覆盖全焦段无缝切换的需求。

AVCaptureDevice类型参考截图

内容的提问来源于stack exchange,提问作者Yuuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:09:20