我的iOS应用程序中有一些条形码扫描码已经很多年了。最近,用户开始抱怨它在iPhone 13 Pro上不起作用。
在调查过程中,我似乎应该使用内置的三重摄像头(如果有的话)。这样做 * 确实 * 修复了iPhone 13 Pro的摄像头,但随后又破坏了iPhone 12 Pro的摄像头,iPhone 12 Pro似乎与之前的代码配合得很好。
你应该如何为所有设备选择一个合适的相机呢?在我看来很奇怪,苹果突然让使用这个以前工作的代码变得如此困难。
这是我当前的代码。“回退”部分是代码多年来一直使用的部分。
_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];
}
1条答案
按热度按时间jq6vz3qz1#
谢天谢地,在reddit的帮助下,我能够弄清楚解决方案只是简单地替换
与