• IOS 二维码扫描


    这篇博客是对上篇博客的补充,内容较少。

    由于二维码扫描需要在真机上测试本人比较烂就不做效果图了。

    下面是代码(代码中已经写了很清楚的注释)

    //
    //  ViewController.m
    //  CX 二维码扫描
    //
    //  Created by ma c on 16/4/12.
    //  Copyright © 2016年 bjsxt. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <AVFoundation/AVFoundation.h>
    @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        
        
    }
    
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        
        //创建捕捉会话
        AVCaptureSession * session = [[AVCaptureSession alloc]init];
        //添加输入设备
        AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:@"AVMediaTypeVideo"];
        AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
        [session addInput:input];
        //添加输出数据
        AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init];
        [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
        [session addOutput:output];
        //告诉元数据类型为二维码类型
        //注意该方法在add后 否则崩溃
        //测试需要真机稍有麻烦 就不截图了
        [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
        //添加扫描图层
        AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
        layer.frame = CGRectMake(10,20, self.view.frame.size.width, 400);
        [self.view.layer addSublayer:layer];
        //开始扫描
        [session startRunning];
        
        //下面的方法适当的时候操作
        //停止扫描
    //    [session stopRunning];
        //移除图层
    //    [layer removeFromSuperlayer];
    }
    - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{
        //metadataObjects 为扫描的后的数据
        
        AVMetadataMachineReadableCodeObject * objc = [metadataObjects lastObject];
        //我们想要的结果
        NSLog(@"%@",objc.stringValue);
    }
    @end
  • 相关阅读:
    我在互联网的第一年
    变速变调原理与方法总结
    TIMIT语音库
    基于HTK语音工具包进行孤立词识别的使用教程
    Praat 音频分析 人工标注
    HTK源码学习总结
    HTK搭建语音拨号系统实验材料下载
    应用HTK搭建语音拨号系统4: 识别器评估
    应用HTK搭建语音拨号系统3:创建绑定状态的三音素HMM模型
    应用HTK搭建语音拨号系统2:创建单音素HMM模型
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5382328.html
Copyright © 2020-2023  润新知