我将二维码放在UIImageView中并使用系统方法读取它。
它可以在iPhone6或6s上运行但在iPhone5上无法读取任何内容。
有没有人知道如何解决?
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{ CIDetectorAccuracy : CIDetectorAccuracyHigh }];
NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:self.QRImageView.image.CGImage]];
答案 0 :(得分:0)
看起来您需要使用AVCaptureMetadataOutput
。
// Device
self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
// Input
self.input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil]
// Output
self.output = [[AVCaptureMetadataOutput alloc] init];
[self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
self.output.metadataObjectTypes = @[AVMetadataObjectTypeQRCode];
// Session
self.session = [[AVCaptureSession alloc] init];
[self.session addInput:self.input];
[self.session addOutput:self.output];
其他人已经注意到CIDetector
仅适用于iPhone 5s及以上,iPad Air及以上版本。