700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > IOS7原生API进行二维码条形码的扫描

IOS7原生API进行二维码条形码的扫描

时间:2021-05-09 17:43:29

相关推荐

IOS7原生API进行二维码条形码的扫描

独角兽企业重金招聘Python工程师标准>>>

//需要真机#import"ViewController.h"#import<AVFoundation/AVFoundation.h>@interfaceViewController()<AVCaptureMetadataOutputObjectsDelegate>//用于处理采集信息的代理{AVCaptureSession*session;//输入输出的中间桥梁}@end@implementationViewController-(void)viewDidLoad{[superviewDidLoad];//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.//获取摄像设备AVCaptureDevice*device=[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];//创建输入流AVCaptureDeviceInput*input=[AVCaptureDeviceInputdeviceInputWithDevice:deviceerror:nil];//创建输出流AVCaptureMetadataOutput*output=[[AVCaptureMetadataOutputalloc]init];//设置代理在主线程里刷新[outputsetMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];//初始化链接对象session=[[AVCaptureSessionalloc]init];//高质量采集率[sessionsetSessionPreset:AVCaptureSessionPresetHigh];//1、这个CGRect参数和普通的Rect范围不太一样,它的四个值的范围都是0-1,表示比例。//2、经过测试发现,这个参数里面的x对应的恰恰是距离左上角的垂直距离,y对应的是距离左上角的水平距离。//3、宽度和高度设置的情况也是类似。//3、举个例子如果我们想让扫描的处理区域是屏幕的下半部分,我们这样设置//output.rectOfInterest=CGRectMake(0.5,0,0.5,1);[sessionaddInput:input];[sessionaddOutput:output];//设置扫码支持的编码格式(如下设置条形码和二维码兼容)output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code,AVMetadataObjectTypeEAN8Code,AVMetadataObjectTypeCode128Code];//创建摄像头显示图层AVCaptureVideoPreviewLayer*layer=[AVCaptureVideoPreviewLayerlayerWithSession:session];layer.videoGravity=AVLayerVideoGravityResizeAspectFill;layer.frame=self.view.layer.bounds;[self.view.layerinsertSublayer:layeratIndex:0];//开始捕获[sessionstartRunning];}#pragmamark信息捕获代理方法-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputMetadataObjects:(NSArray*)metadataObjectsfromConnection:(AVCaptureConnection*)connection{if(metadataObjects.count>0){//[sessionstopRunning];AVMetadataMachineReadableCodeObject*metadataObject=[metadataObjectsobjectAtIndex:0];//输出扫描字符串NSLog(@"%@",metadataObject.stringValue);}}@end

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。