多年来,我的iOS应用程序中已经安装了一些条形码扫描码.最近,用户开始抱怨它不能在iPhone 13 Pro上使用.

在调查过程中,我似乎应该使用内置的三重摄像头(如果有).这样做did修复了iPhone 13 Pro的问题,但随后 destruct 了iPhone 12 Pro的问题,iPhone 12 Pro似乎可以很好地与以前的代码一起工作.

你应该如何 Select 一款适合所有设备的相机?对我来说,苹果突然让使用这个以前可以工作的代码变得如此困难,这似乎很奇怪.

这是我当前的代码."备用"部分是代码多年来一直使用的.

     _session = [[AVCaptureSession alloc] init];
     // Must use macro camera for barcode scanning on newer devices, otherwise the image is blurry
    if (@available(iOS 13.0, *)) {
        AVCaptureDeviceDiscoverySession * discoverySession =
        [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInTripleCamera]
                                                               mediaType:AVMediaTypeVideo
                                                                position:AVCaptureDevicePositionBack];
        if (discoverySession.devices.count == 0) {
            // no BuiltInTripleCamera
            _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
        } else {
            _device = discoverySession.devices.firstObject;
        }
    } else {
        // Fallback on earlier versions
        _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    }

推荐答案

谢天谢地,在reddit的帮助下,我能够找到解决方案,简单地替换

AVCaptureDeviceTypeBuiltInTripleCamera

使用

AVCaptureDeviceTypeBuiltInWideAngleCamera

Ios相关问答推荐

SwiftUI拖动手势和内容拖动时的奇怪行为( skip /卡顿)

当重新呈现UI时,嵌套的 struct 值如何与@Observable一起工作?

如果没有等待,SWIFT Async让任务抛出取消异常

clang:错误:SDK 路径中不包含libarclite

不使用故事板创建 iMessage 应用程序

NavigationLink 只能在文本部分点击

查找东南亚语言(泰语、高棉语、老挝语、缅甸语)中的单词边界

SwiftUI 中的描边图像边框

SwiftUI:同时拖动父视图和子视图,但手指分开

SwiftUI:如何为 ScrollView 制作可拉伸(灵活)的粘性标题?

视图之间的 SwiftUI 过渡,没有过渡

SwiftUI:通过Sheet将数据添加到Realm DB时视图不更新

iOS SwiftUI - 从以前的 struct 调用函数

iOS 是否支持使用独立 .xib 文件创建的嵌套自定义子视图?

.onAppear() 函数不适用于 NavigationLink

迁移到 UIKit 生命周期的应用程序不会调用 SceneDelegate

用户拒绝使用后如何提示用户打开位置服务

关闭通过模态 segue 显示的视图

UITableView:从空白部分隐藏标题

如何找到 UILabel 的实际行数?