iOS实现二维码的扫描功能
直接上代码,就不多废话了
//
//ViewController.m
//QRCode
//
//Createdbychenchenon15/7/30.
//Copyright(c)2015年BSY.Allrightsreserved.
//
#import<AVFoundation/AVFoundation.h>
#import"ViewController.h"
@interfaceViewController()<AVCaptureMetadataOutputObjectsDelegate>
@end
@implementationViewController
-(void)viewDidLoad{
[superviewDidLoad];
AVCaptureSession*session=[[AVCaptureSessionalloc]init];
AVCaptureDevice*device=[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];
NSError*error=nil;
AVCaptureDeviceInput*input=[AVCaptureDeviceInputdeviceInputWithDevice:device
error:&error];
if(input){
[sessionaddInput:input];
}else{
NSLog(@"Error:%@",error);
}
AVCaptureMetadataOutput*output=[[AVCaptureMetadataOutputalloc]init];
//设置扫码支持的编码格式(如下设置条形码和二维码兼容)
[outputsetMetadataObjectTypes:@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code,AVMetadataObjectTypeEAN8Code,AVMetadataObjectTypeCode128Code]];
[outputsetMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];
[sessionaddOutput:output];
[sessionstartRunning];
}
#pragmamark-AVCaptureMetadataOutputObjectsDelegate
-(void)captureOutput:(AVCaptureOutput*)captureOutput
didOutputMetadataObjects:(NSArray*)metadataObjects
fromConnection:(AVCaptureConnection*)connection
{
NSString*QRCode=nil;
for(AVMetadataObject*metadatainmetadataObjects){
if([metadata.typeisEqualToString:AVMetadataObjectTypeQRCode]){
//Thiswillneverhappen;nobodyhaseverscannedaQRcode...ever
QRCode=[(AVMetadataMachineReadableCodeObject*)metadatastringValue];
break;
}
}
NSLog(@"QRCode:%@",QRCode);
}
-(void)didReceiveMemoryWarning{
[superdidReceiveMemoryWarning];
//Disposeofanyresourcesthatcanberecreated.
}
@end
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练