文档章节

二维码扫描

_
 ___大黄蜂___
发布于 2016/05/11 15:12
字数 155
阅读 16
收藏 0

iOS 原生二维码扫描到的几个类

#import<AVFoundation/AVFoundation.h>

@property (strong,nonatomic)AVCaptureDevice * device;

@property (strong,nonatomic)AVCaptureDeviceInput * input;

@property (strong,nonatomic)AVCaptureMetadataOutput * output;

@property (strong,nonatomic)AVCaptureSession * session;

@property (strong,nonatomic)AVCaptureVideoPreviewLayer * preview;

self.device =[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];

self.input = [AVCaptureDeviceInputdeviceInputWithDevice:self.deviceerror:nil];  

self.output = [[AVCaptureMetadataOutputalloc]init];

[self.output setMetadataObjectsDelegate:selfqueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)]; 

self.session = [[AVCaptureSessionalloc]init];

[self.session   setSessionPreset:AVCaptureSessionPresetHigh];

if ([self.session   canAddInput:self.input]) {

[self.session   addInput:self.input];

}

if ([_sessioncan  AddOutput:self.output]) {

[self.session   addOutput:self.output];

}

// 条码类型

AVMetadataObjectTypeQRCode

self.output.metadataObjectTypes =@[AVMetadataObjectTypeQRCode];

//这里需要注意

 [self.output   setRectOfInterest:CGRectMake((120)/ScreenHigh,((kScreenWidth-200)/2)/ScreenWidth,200/ScreenHigh,200/ScreenWidth)];

// self.preview =[AVCaptureVideoPreviewLayerlayerWithSession:self.session]; self.preview.videoGravity =AVLayerVideoGravityResizeAspectFill;

self.preview.frame =self.view.layer.bounds;

[self.view.layer     insertSublayer:self.previewatIndex:0];

// Start

[self.sessionstartRunning];

然后实现 AVCaptureMetadataOutputObjectsDelegate

#pragma mark AVCaptureMetadataOutputObjectsDelegate

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection { NSString *stringValue; if ([metadataObjectscount] >0) {

//停止扫描

[_sessionstopRunning];

AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjectsobjectAtIndex:0];

stringValue = metadataObject.stringValue;

      }

}  
 

© 著作权归作者所有

共有 人打赏支持
_
粉丝 5
博文 26
码字总数 21716
作品 0
东城
私信 提问

暂无文章

Spring学习记录

Java类定义配置 @Configuration //标记为配置类@ComponentScan //标记为扫描当前包及子包所有标记为@Component的类@ComponentScan(basePackageClasses = {接口.class,...}) //标记为扫描当...

CHONGCHEN
今天
1
0
如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
3
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部