扫描二维码
来源:互联网 发布:java短信验证码第三方 编辑:程序博客网 时间:2024/05/18 01:25
一、二维码的介绍
ios7.0开始,系统开始支持二维码扫描功能
二维码实现思路:
1、输入设备:用来获取外界信息(摄像头、麦克风、键盘)
2、输出设备:将收集到的信息,做解析,获取内容
3、会话session:连接输入和输出设备
4、特殊的layer:展示输入设备,所采集的信息
二、基本实现
#import <AVFoundation/AVFoundation.h>@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>// 输入设备@property (nonatomic, strong)AVCaptureDeviceInput *input;// 输出设备@property (nonatomic, strong)AVCaptureMetadataOutput *output;// 特殊会话@property (nonatomic, strong)AVCaptureSession *session;// 特殊layer@property (nonatomic, strong)AVCaptureVideoPreviewLayer *previewLayer;@end
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //1、创建输入设备 AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; self.input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; //2、创建输出设备 self.output = [[AVCaptureMetadataOutput alloc] init]; //3、创建会话session self.session = [[AVCaptureSession alloc] init]; //会话扫描展示的大小 [self.session setSessionPreset:AVCaptureSessionPresetHigh]; //会话跟输入设备和输出设备的关系 if ([self.session canAddInput:self.input]) { [self.session addInput:self.input]; } if ([self.session canAddOutput:self.output]) { [self.session addOutput:self.output]; } //制定输出设备的代理,用来接收返回的数据 [self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; //设置元数据类型 [self.output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; //4、创建layer self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.session]; self.previewLayer.frame = self.view.bounds; [self.view.layer addSublayer:self.previewLayer]; //5、启用会话 [self.session stopRunning];}
三、代码封装(动画、手电筒)
阅读全文
0 0
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 扫描二维码
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 二维码扫描
- 扫描二维码
- 二维码扫描
- 二维码扫描
- 扫描二维码
- CMD命令操作MySql数据库详解
- 蚂蚁花呗提现方法及花呗怎么提现详解
- 每天一道LeetCode-----在字符串s中找到最短的包含字符串t中所有字符的子串,子串中字符顺序无要求且可以有其他字符
- python3.6+selenium+phantomJS 网页爬虫报错NoSuchElementException问题及解决方法
- Spring Cloud 配置文件切换(profiles的应用)
- 扫描二维码
- 使用java BufferedWriter写txt文本
- oncmdb部署和密码修改
- Problem B: Sequence Problem (II) : Array Practice
- 如何禁止电脑文件被复制
- java NIO selector ServerSocketChannel 例子
- ecshop 小京东 微信公众号链接打开,报错appid不能为空,错误码10012
- jadx 反编译apk
- Elasticsearch笔记七之setting,mapping,分片查询方式