问题描述
IOS催化剂avcapturedevice无法实现扫描二维码的功能。它发生在卡特琳娜。如何实现uiimagepickercontroller扫描二维码的功能
-
这是Catalina的错误报告 错误域=AVFoundationErrorDomain Code=-11814 "无法录制" UserInfo={NSLocalizedDescription=无法录制,NSLocalizedRecoverySuggestion=再次尝试录制。}
-
有网友表示可以使用uiimagepickercontroller来扫描二维码。如何实现?
Error Domain=AVFoundationErrorDomain Code=-11814 "Cannot Record"
解决方法
1.This is how I solved it. Judge avcapturedevice.
'AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; if (device == nil && [del isRunningOnMacOSX]) { [self initImagePickerController];返回; }'
2.Get QR code content after taking photos
(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey,id> *)info { UIImage *pickedImage = info[UIImagePickerControllerEditedImage] ?: info[UIImagePickerControllerOriginalImage]; CIImage *detectImage = [CIImage imageWithData:UIImagePNGRepresentation(pickedImage)]; CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy: CIDetectorAccuracyLow}]; CIQRCodeFeature *feature = (CIQRCodeFeature *)[detector featuresInImage:detectImage options:nil].firstObject; [picker dismissViewControllerAnimated:YES completion:^{ if (feature.messageString) { [self onConnectionOrLicenseScanned:feature.messageString]; } }]; }