iOS AV Foundation 二维码扫描 02 扫码
2015-03-21 14:27
381 查看
AVFoundation支持以下一维和二维码的扫描:
QR code
Aztec
EAN13
EAN8
UPC-E
PDF417
Code 93
Code 39
Code 39 mode 41
QR code就是我们所熟知的二维码。
打开ViewController.m,添加以下实例变量:
添加以下代码到setupCaptureSession的最后来实现对元数据的捕捉和处理:
接下来,声明本类遵循AVCaptureMetadataOutputObjectsDelegate协议:
修改startRunning方法,在最后添加如下代码:
编译运行,扫描以下二维码将得到如下输出:
转载请注明出处:/article/9358089.html
QR code
Aztec
EAN13
EAN8
UPC-E
PDF417
Code 93
Code 39
Code 39 mode 41
QR code就是我们所熟知的二维码。
打开ViewController.m,添加以下实例变量:
AVCaptureMetadataOutput *_metadataOutput;当从视频帧中检测到元数据时,AVCaptureMetadataOutput会调用应用程序的回调函数。AV Foundation支持两种类型的元数据:机器可读的编码和人脸识别。
添加以下代码到setupCaptureSession的最后来实现对元数据的捕捉和处理:
_metadataOutput = [[AVCaptureMetadataOutput alloc] init]; dispatch_queue_t metadataQueue = dispatch_queue_create("com.yaming.ColloQR.metadata", 0); [_metadataOutput setMetadataObjectsDelegate:self queue:metadataQueue]; if([_captureSession canAddOutput:_metadataOutput]) { [_captureSession addOutput:_metadataOutput]; }这里,我们首先创建AVCaptureMetadataOutput的实例,然后为其创建一个dispatch queue,这样避免在回调函数被调用时,阻塞主线程。
接下来,声明本类遵循AVCaptureMetadataOutputObjectsDelegate协议:
@interface ViewController () <AVCaptureMetadataOutputObjectsDelegate>实现代理方法:
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection { [metadataObjects enumerateObjectsUsingBlock:^(AVMetadataObject *obj, NSUInteger idx, BOOL *stop) { NSLog(@"Metadata: %@", obj); }]; }每当AVCaptureMetadataOutput类检测到新的元数据时,调用captureOutput方法,在captureOutput方法中,我们打印所有检测到的元数据。
修改startRunning方法,在最后添加如下代码:
_metadataOutput.metadataObjectTypes = _metadataOutput.availableMetadataObjectTypes;这样做的目的是设置要检测的元数据类型为所有类型。
编译运行,扫描以下二维码将得到如下输出:
2015-03-21 14:51:42.289 ColloQR[680:176124] Metadata: <AVMetadataMachineReadableCodeObject: 0x170221540, type="org.iso.QRCode", bounds={ 0.4,0.2 0.1x0.3 }>corners { 0.4,0.5 0.5,0.5 0.5,0.2 0.4,0.2 }, time 31026866447458, stringValue "iOS二维码扫描"这样我们就完成了使用AV Foundation进行二维码扫描的功能。从log中可以看到,有bounds和conrners信息,下一节我们将利用这个信息,当扫码成功时,为用户提供可视的反馈。
转载请注明出处:/article/9358089.html
相关文章推荐
- iOS 7 What’s New in AV Foundation之二维码扫描(上)
- iOS 7 What’s New in AV Foundation之二维码扫描(中)
- iOS AV Foundation 二维码扫描 03 为扫描到的二维码添加可视化效果
- iOS 7 What’s New in AV Foundation之二维码扫描(下)
- IOS AVFoundation的录音与播放
- How to capture video frames from the camera as images using AV Foundation on iOS
- iOS-AVFoundation自定义相机详解
- IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE
- ios avfoundation 合并音频到一个视频文件 avurlassettrack
- ios avfoundation 合并音频到一个视频文件 avurlassettrack
- iOS-音视频采集 by AVFoundation
- iOS基于AVFoundation + GPUImage的实时图像处理
- IOS音频4:之采用四种方式播放音频文件(四)AudioToolbox AVFoundation OpenAL AUDIO QUEUE
- IOS音频3:之采用四种方式播放音频文件(三)AudioToolbox AVFoundation OpenAL AUDIO QUEUE
- iOS 加载网络视频之(AVFoundation.framewor)的MPMoviePlayerController
- Swift AVFoundation 二维码扫描和生成
- iphone ios AV Foundation
- ios学习--How to capture video frames from the camera as images using AV Foundation
- iOS - 音乐 AVFoundation.framwork
- iOS AVFoundation视频编辑