多年来,我的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];
}