zoukankan      html  css  js  c++  java
  • ios如何扫描二维码

     扫描二维码 需要用到 AVFoundation框架,需要包含 #import <AVFoundation/AVFoundation.h>

    // 1.创建捕捉会话
      AVCaptureSession *session = [[AVCaptureSession alloc] init];

    // 2.添加输入设备(数据从摄像头输入)
      AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
      AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
      [session addInput:input];

    // 3.添加输出数据(示例对象-->类对象-->元类对象-->根元类对象)
      AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
      [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];  //  定义在主线程中执行,也可以在子线程,

      需要控制器遵守协议:<AVCaptureMetadataOutputObjectsDelegate>
      [session addOutput:output];

    // 3.1.设置输入元数据的类型(类型是二维码数据)
      [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];

    // 4.添加扫描图层
      AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
      layer.frame = self.view.bounds;    // 全屏显示 扫描框
      [self.view.layer addSublayer:layer];

    // 5.开始扫描
      [session startRunning];

    // 当扫描到数据时就会执行该方法
    - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
    {
      if (metadataObjects.count > 0) {
        AVMetadataMachineReadableCodeObject *object = [metadataObjects lastObject];
        NSLog(@"%@", object.stringValue);

        // 停止扫描
        [self.session stopRunning];

      // 将预览图层移除
        [self.layer removeFromSuperlayer];
      } else {
        NSLog(@"没有扫描到数据");
         }
    }

  • 相关阅读:
    BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose) ( 莫队 )
    BZOJ 3555: [Ctsc2014]企鹅QQ( hash )
    BZOJ 2226: [Spoj 5971] LCMSum( 数论 )
    BZOJ 3505: [Cqoi2014]数三角形( 组合数 )
    BZOJ 2510: 弱题( 矩阵快速幂 )
    BZOJ 1009: [HNOI2008]GT考试( dp + 矩阵快速幂 + kmp )
    BZOJ 1090: [SCOI2003]字符串折叠( 区间dp )
    HDU 2295 Radar dancing links 重复覆盖
    ZOJ 3209 Treasure Map dancing links
  • 原文地址:https://www.cnblogs.com/dashengios/p/5433307.html
Copyright © 2011-2022 走看看