美文网首页
IOS原生 二维码

IOS原生 二维码

作者: K老 | 来源:发表于2017-08-14 10:41 被阅读0次

步骤://1.创建一个输入设备(扫描)摄像头->采集信息AVCaptureDeviceInput

//2.输出设备解析采集到信息AVCaptureMetadataOutput

//3.会话联系输入跟输出AVCa

ptureSession

//4.特殊的视图来展示输入设备采集到的信息AVCaptureVideoPreviewLayer

//5.代理

//6.开启会话

//设置扫描范围

[self.sessionsetSessionPreset:AVCaptureSessionPresetHigh];

[self.sessionstartRunning];

扩展:

AVCaptureDevice*inputDevice = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];

AVF_EXPORTNSString*constAVMediaTypeVideoNS_AVAILABLE(10_7,4_0);

AVF_EXPORTNSString*constAVMediaTypeAudioNS_AVAILABLE(10_7,4_0);

AVF_EXPORTNSString*constAVMediaTypeTextNS_AVAILABLE(10_7,4_0);

AVF_EXPORTNSString*constAVMediaTypeClosedCaptionNS_AVAILABLE(10_7,4_0);

AVF_EXPORTNSString*constAVMediaTypeSubtitleNS_AVAILABLE(10_7,4_0);

AVF_EXPORTNSString*constAVMediaTypeTimecodeNS_AVAILABLE(10_7,4_0);

AVF_EXPORTNSString*constAVMediaTypeMetadataNS_AVAILABLE(10_8,6_0);

AVF_EXPORTNSString*constAVMediaTypeMuxedNS_AVAILABLE(10_7,4_0);

#import "ViewController.h"

@interface ViewController ()

@property (strong ,nonatomic)UIWebView *shaomaView;

//1.创建一个输入设备  (扫描) 摄像头 -> 采集信息

@property(nonatomic,strong)AVCaptureDeviceInput *input;

//2.输出设备 解析采集到信息

//元数据

@property(nonatomic,strong) AVCaptureMetadataOutput *output;

//3.会话 联系 输入跟输出

@property(nonatomic,strong) AVCaptureSession *session;

//4.特殊的视图 来展示输入设备采集到的信息

@property(nonatomic,strong) AVCaptureVideoPreviewLayer *layer;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self.view addSubview:self.shaomaView];

//1.输入设备 : 1.摄像头 2.麦克风 3.键盘鼠标

AVCaptureDevice *inputDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

NSError *error = nil;

self.input = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&error];

//2.输出设备

self.output = [[AVCaptureMetadataOutput alloc]init];

//3.会话  联系输入和输出

self.session = [[AVCaptureSession alloc]init];

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

[self.session addInput:self.input];

}

if ([self.session canAddOutput:self.output]) {

[self.session addOutput:self.output];

}

//4.特殊的视图

self.layer = [[AVCaptureVideoPreviewLayer alloc]initWithSession:self.session];

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

[self.view.layer addSublayer:self.layer];

//5.代理

[self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];

self.output.metadataObjectTypes = @[AVMetadataObjectTypeQRCode];

//6.开启会话

//设置扫描范围

[self.session setSessionPreset:AVCaptureSessionPresetHigh];

[self.session startRunning];

}

/**

* 扫描到信息就会调用

*

*  @param captureOutput

*  @param metadataObjects

*  @param connection

*/

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection

{

[self.layer removeFromSuperlayer];

[self.session stopRunning];

for (AVMetadataMachineReadableCodeObject * objc in metadataObjects) {

NSLog(@"%@",objc.stringValue);

//跳转控制器

//http://weixinpay.www.baidu.com push

[self.shaomaView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:objc.stringValue]]];

[self.shaomaView reload];

}

}

- (UIWebView *)shaomaView{

if (!_shaomaView) {

_shaomaView = [[UIWebView alloc]initWithFrame:self.view.frame];

}

return _shaomaView;

}

@end

相关文章

  • iOS开发:二维码扫描与生成(扫描篇)

    iOS开发中经常要用到生成二维码与扫描二维码的功能,iOS7开始,系统支持原生的扫描二维码,iOS7 扫描二维码可...

  • 生成带 logo的二维码

    来源于:【iOS】CoreImage原生二维码生成(二)一个方法生成带logo的二维码 来源于:【iOS】Core...

  • iOS 资源搜集 第二弹

    资源: github的资源整合 学习: swift学习oc中国 其他:原生实现扫描二维码条码- iOS原生实现扫描...

  • 二维码扫描和创建(上)

    扫描二维码(包括读取和解码) 扫描二维码OC的开源库有ZBar和ZXing。iOS7以后iOS拥有原生的扫码功能。...

  • iOS 原生实现扫描二维码和条形码功能,限制扫描区域

    现在苹果iOS系统已经原生支持了二维码扫描的功能,使用原生来扫描需要导入AVFoundation。 扫描准备 一、...

  • iOS原生二维码的生成与扫描

    前沿 * 这是对iOS原生二维码生成与扫描的总结 (之所以在此做总结:是为了方便更多的人去很好的使用iOS原生二维...

  • 原生实现扫描功能

    前言:从iOS7开始,苹果就加入了相机二维码扫描的原生api,继而iOS8之后也支持图片二维码识别功能。特此总结下...

  • iOS 生成二维码

    iOS7之后,可以使用原生的CIFilter创建二维码。 一、生成二维码 首先是二维码的生成,使用CIFilter...

  • iOS开发之扫描二维码

    自iOS7以后,iOS扫描二维码不需要借助于第三方框架了,苹果在AVFoundation中原生支持了扫描二维码的A...

  • iOS - AVFoundation - 二维码

    在以前二维码比较知名的框架是ZXing和Zbar,现在,iOS系统提供了原生的实现二维码的功能 内容: 二维码的扫...

网友评论

      本文标题:IOS原生 二维码

      本文链接:https://www.haomeiwen.com/subject/htoyrxtx.html