多年來,我的 iOS 應用程式中有一些條碼掃描代碼。最近,用戶開始抱怨它不適用于 iPhone 13 Pro。
在調查期間,我似乎應該使用內置的三合一相機(如果有的話)。這樣做確實為 iPhone 13 Pro 修復了它,但隨后為 iPhone 12 Pro 破壞了它,這似乎與之前的代碼一起作業正常。
您應該如何為所有設備選擇合適的相機?我覺得很奇怪,Apple 突然讓使用這個以前作業的代碼變得如此困難。
這是我當前的代碼。“后備”部分是代碼多年來使用的部分。
_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];
}
uj5u.com熱心網友回復:
謝天謝地,在 reddit 的幫助下,我發現解決方案只是替換
AVCaptureDeviceTypeBuiltInTripleCamera
和
AVCaptureDeviceTypeBuiltInWideAngleCamera
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/532615.html
