首页 > 系统 > iOS > 正文

iOS实现二维码的扫描功能

2020-07-26 03:34:55
字体:
来源:转载
供稿:网友

直接上代码,就不多废话了

//// ViewController.m// QRCode//// Created by chenchen on 15/7/30.// Copyright (c) 2015年 BSY. All rights reserved.//#import <AVFoundation/AVFoundation.h>#import "ViewController.h"@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate> @end @implementation ViewController - (void)viewDidLoad {  [super viewDidLoad];          AVCaptureSession *session = [[AVCaptureSession alloc] init];  AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];  NSError *error = nil;     AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device                                    error:&error];  if (input) {    [session addInput:input];  } else {    NSLog(@"Error: %@", error);  }  AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];  //设置扫码支持的编码格式(如下设置条形码和二维码兼容)  [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]];  [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];  [session addOutput:output];  [session startRunning];} #pragma mark - AVCaptureMetadataOutputObjectsDelegate- (void)captureOutput:(AVCaptureOutput *)captureOutputdidOutputMetadataObjects:(NSArray *)metadataObjects    fromConnection:(AVCaptureConnection *)connection{  NSString *QRCode = nil;  for (AVMetadataObject *metadata in metadataObjects) {    if ([metadata.type isEqualToString:AVMetadataObjectTypeQRCode]) {      // This will never happen; nobody has ever scanned a QR code... ever      QRCode = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];      break;    }  }     NSLog(@"QR Code: %@", QRCode);}- (void)didReceiveMemoryWarning {  [super didReceiveMemoryWarning];  // Dispose of any resources that can be recreated.} @end

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表