用CO自带SDK实现二维码扫描
来源:互联网 发布:单片机微型打印机 编辑:程序博客网 时间:2024/05/29 09:30
<strong>首先要想实现二维码的调试必须要真机才可以</strong>
<strong></strong>
<strong>1.首先要倒入AVFoundation这个框架.</strong>
<pre name="code" class="objc">/** Label用于显示获取到的二维码的信息的连线 */@property (weak, nonatomic) IBOutlet UILabel *label;/** 二维码生成的绘画 */@property (nonatomic, strong) AVCaptureSession *session;/** 二维码生成的图层 */@property (nonatomic, strong) AVCaptureVideoPreviewLayer *previewLayer;
2.在touchBegan方法中实现二维码的扫描.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self readQRcode];}
<strong>3.具体方法实现.</strong><pre name="code" class="objc">- (void)readQRcode{ // 1. 摄像头设备 AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; // 2. 设置输入 // 因为模拟器是没有摄像头的,因此在此最好做一个判断 NSError *error = nil; AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error]; if (error) { NSLog(@"没有摄像头-%@", error.localizedDescription); return; } // 3. 设置输出(Metadata元数据) AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init]; // 3.1 设置输出的代理 //ps:使用住队列效果更好 [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; // [output setMetadataObjectsDelegate:self queue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)]; // 4. 拍摄会话 AVCaptureSession *session = [[AVCaptureSession alloc] init]; // 添加session的输入和输出 [session addInput:input]; [session addOutput:output]; // 4.1 设置输出的格式 // 提示:一定要先设置会话的输出为output之后,再指定输出的元数据类型! [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; // 5. 设置预览图层(用来让用户能够看到扫描情况) AVCaptureVideoPreviewLayer *preview = [AVCaptureVideoPreviewLayer layerWithSession:session]; // 5.1 设置preview图层的属性 [preview setVideoGravity:AVLayerVideoGravityResizeAspectFill]; // 5.2 设置preview图层的大小 [preview setFrame:self.view.bounds]; // 5.3 将图层添加到视图的图层 [self.view.layer insertSublayer:preview atIndex:0]; self.previewLayer = preview; // 6. 启动会话 [session startRunning];}
<strong>4.实现代理方法.</strong>
<pre name="code" class="objc">#pragma mark -代理方法.- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{ NSLog(@"%@",metadataObjects);}
0 0
- 用CO自带SDK实现二维码扫描
- 实现系统自带二维码扫描功能
- iOS7自带二维码扫描
- iOS7自带扫描二维码、条形码功能实现
- iOS7自带扫描二维码、条形码功能实现
- 使用 IOS 自带 API 扫描二维码
- iOS_二维码扫描(iOS自带)
- iOS自带扫描 和 生成二维码
- ios7自带的扫描二维码功能
- iOS自带的二维码扫描功能
- iOS自带扫描 和 生成二维码
- iOS自带扫描 和 生成二维码
- iOS自带扫描 和 生成二维码
- iOS_二维码扫描(iOS自带)
- 112 系统自带二维码扫描
- iOS自带扫描和生成二维码
- 若只支持IOS7 可用AVFouner 和系统自带API实现二维码扫描功能
- iOS开发:使用苹果自带框架实现二维码和条形码扫描
- hdu2095 像水题的不错题 异或运算
- CocoaPods安装和使用教程
- web_inject学习
- Exploit the Android SecretPhoto Taking Vulnerability
- 使用LauncherActivity开发启动的列表
- 用CO自带SDK实现二维码扫描
- cocos2d-x学习笔记
- asm磁盘加载小记
- Java消息服务(JMS)学习小结
- OpenCV使用不同方式访问图像数据
- JSP EL表达式获取数据
- java枚举元素集合
- hdu 1506
- 关于多态的探讨