iOS开发 iPhone14 Pro/Pro Max后置摄像头近距离无法对焦解决

一、解决方案

iPhone14 Pro/Pro Max的主摄焦距更长。在近距离拍摄时无法对焦。只需要判断机型然后更换焦距更短的摄像头即可。该摄像头与主摄相比,同样的距离会拍摄到更多的内容,此时可以通过调整摄像头的缩放来达到与主摄一样的效果(下面代码没有缩放)。

#import <sys/utsname.h>
#import <sys/stat.h>

- (AVCaptureDevice *)captureDeviceWithPosition:(AVCaptureDevicePosition)position {
    if ([UIDevice currentDevice].systemVersion.floatValue >= 10.0) {
        AVCaptureDeviceType deviceType = AVCaptureDeviceTypeBuiltInWideAngleCamera;
        if (position == AVCaptureDevicePositionBack) {
            struct utsname systemInfo;
            uname(&systemInfo);
            NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
            if ([deviceModel isEqualToString:@"iPhone15,2"] ||
                [deviceModel isEqualToString:@"iPhone15,3"]) {
                if ([UIDevice currentDevice].systemVersion.floatValue >= 13.0) {
                    deviceType = AVCaptureDeviceTypeBuiltInUltraWideCamera;
                }
            }
        }
        AVCaptureDeviceDiscoverySession *devicesIOS10 = [AVCaptureDeviceDiscoverySession  discoverySessionWithDeviceTypes:@[deviceType] mediaType:AVMediaTypeVideo position:position];
        NSArray *devicesIOS  = devicesIOS10.devices;
        for (AVCaptureDevice *device in devicesIOS) {
            if ([device position] == position) {
                return device;
            }
        }
        return nil;
    } else {
        NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
        //遍历这些设备返回跟position相关的设备
        for (AVCaptureDevice *device in devices) {
            if ([device position] == position) {
                return device;
            }
        }
        return nil;
    }
}

二、AVCaptureDeviceType介绍

1、AVCaptureDeviceType

类型 介绍
AVCaptureDeviceTypeBuiltInMichrophone 麦克风设备
AVCaptureDeviceTypeBuiltInWideAngleCamera 内置广角相机设备
AVCaptureDeviceTypeBuiltInTelephotoCamera 内置的相机设备 焦距比广角相机长。注意: 此类设备只能使用 AVCaptureDeviceDiscoverySession 发现
AVCaptureDeviceTypeBuiltInUltraWideCamera 比广角相机焦距短的内置相机设备。注意: 此类设备只能使用 AVCaptureDeviceDiscoverySession 发现
AVCaptureDeviceTypeBuiltInDualCamera 一种由两个固定的焦距照相机组成的设备。一个是广角镜头(Wide),一个是远摄镜头 (Telephoto)
AVCaptureDeviceTypeBuiltInDualWideCamera 一种由两个固定焦距照相机组成的设备。一个是超宽镜头(Ultra Wide),一个是广角镜头(Wide Angle)
AVCaptureDeviceTypeBuiltInTripleCamera 一种由三个固定焦距照相机组成的设备。一个超宽镜头(Ultra Wide),一个广角镜头(Wide Angle)和一个远摄镜头(Telephoto)组成
AVCaptureDeviceTypeBuiltInTrueDepthCamera 一种由两台摄像机组成的设备。一台 YUV 和一台红外线。红外线摄像头可提供高质的深度信息,该信息可与 YUV 摄像头产生的帧同步并进行透视纠正。两台摄像头的分辨率可能不通透,但他们的相同的纵横比

2、对焦

类型
AVCaptureDeviceTypeBuiltInWideAngleCamera iPhone14 Pro/Pro Max后摄不能近距离对焦
AVCaptureDeviceTypeBuiltInUltraWideCamera iPhone14 Pro/Pro Max后摄可近距离对焦
AVCaptureDeviceTypeBuiltInDualWideCamera iPhone14 Pro/Pro Max后摄可近距离对焦
AVCaptureDeviceTypeBuiltInTripleCamera iPhone14 Pro/Pro Max后摄可近距离对焦 该类型只有iPhone14 Pro/Max能获取到

查看当前设备可用的摄像头

AVCaptureDeviceDiscoverySession *discoverySession = [AVCaptureDeviceDiscoverySession
                                                         discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera,AVCaptureDeviceTypeBuiltInTelephotoCamera,AVCaptureDeviceTypeBuiltInUltraWideCamera,AVCaptureDeviceTypeBuiltInDualCamera,AVCaptureDeviceTypeBuiltInDualWideCamera,AVCaptureDeviceTypeBuiltInTripleCamera,AVCaptureDeviceTypeBuiltInTrueDepthCamera]
                                                         mediaType:AVMediaTypeVideo;
                                                         position:AVCaptureDevicePositionUnspecified];
    NSArray<AVCaptureDevice *> *videoDevices = discoverySession.devices;
    for (AVCaptureDevice *device in videoDevices) {
        NSLog(@"Device name: %@", device.localizedName);
        NSLog(@"Device ID: %@", device.uniqueID);
        NSLog(@"Position: %@", device.position == AVCaptureDevicePositionBack ? @"Back" : @"Front");
        NSLog(@"-----------------------------------");
    }

iPhone13可用设备:

(
    "<AVCaptureFigVideoDevice: 0x10508d000 [Back Camera][com.apple.avfoundation.avcapturedevice.built-in_video:0]>",
    "<AVCaptureFigVideoDevice: 0x105015200 [Back Ultra Wide Camera][com.apple.avfoundation.avcapturedevice.built-in_video:5]>",
    "<AVCaptureFigVideoDevice: 0x10508d600 [Back Dual Wide Camera][com.apple.avfoundation.avcapturedevice.built-in_video:6]>"
)

iPhone14 Pro/Pro Max可用设备:

(
    "<AVCaptureFigVideoDevice: 0x11706f200 [Back Camera][com.apple.avfoundation.avcapturedevice.built-in_video:0]>",
    "<AVCaptureFigVideoDevice: 0x11706f800 [Back Telephoto Camera][com.apple.avfoundation.avcapturedevice.built-in_video:2]>",
    "<AVCaptureFigVideoDevice: 0x117075200 [Back Ultra Wide Camera][com.apple.avfoundation.avcapturedevice.built-in_video:5]>",
    "<AVCaptureFigVideoDevice: 0x117075800 [Back Dual Camera][com.apple.avfoundation.avcapturedevice.built-in_video:3]>",
    "<AVCaptureFigVideoDevice: 0x117077000 [Back Dual Wide Camera][com.apple.avfoundation.avcapturedevice.built-in_video:6]>",
    "<AVCaptureFigVideoDevice: 0x117077600 [Back Triple Camera][com.apple.avfoundation.avcapturedevice.built-in_video:7]>",
    "<AVCaptureFigVideoDevice: 0x11707d000 [Back LiDAR Depth Camera][com.apple.avfoundation.avcapturedevice.built-in_video:9]>"
)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容