最近需要用到二维码的扫描,发现苹果有自己的原生的api,这里简单介绍一下.
首先需要引入AVFoundation.framework 库
在相应的viewController里边引入头文件.
#import <AVFoundation/AVFoundation.h>
//遵守代理
@interface ScanViewController ()<AVCaptureMetadataOutputObjectsDelegate>
@property (nonatomic,strong)AVCaptureSession *captureSession;//输入输出的中间桥梁
@end
接下来就是进行二维码的扫描
#pragma mark - 开始扫描
/**
* 开始扫描
*/
- (void)beginScanning
{
//获取摄像设备
AVCaptureDevice *device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];
//创建输入流
AVCaptureDeviceInput * input = [AVCaptureDeviceInputdeviceInputWithDevice:deviceerror:nil];
if (!input)
return;
//创建输出流
AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutputalloc]init];
//设置代理在主线程里刷新
[output setMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];
//设置有效扫描区域
output.rectOfInterest = CGRectMake(0,0.5,0,0);
//初始化链接对象
self.session = [[AVCaptureSessionalloc]init];
//高质量采集率
[self.sessionsetSessionPreset:AVCaptureSessionPresetHigh];
[self.sessionaddInput:input];