iOS 中二维码的扫描借用#import <AVFoundation/AVFoundation.h> 实现,会用到<AVCaptureMetadataOutputObjectsDelegate>这个代理,并会调用相机进行扫描,

具体实现步骤如下:

//1.创建捕捉会话
AVCaptureSession *session = [[AVCaptureSession alloc] init]; //2.添加一个输入源
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
[session addInput:input];
self.session = session; //3.添加一个输出源
AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
[session addOutput:output];
[output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; //4.添加一个预览图层
AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
layer.frame = self.view.bounds;
[self.view.layer addSublayer:layer];
self.layer = layer; // 5.开启扫描
[session startRunning]; #pragma mark - 实现输出源的代理方法
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
if (metadataObjects.count > ) {
AVMetadataMachineReadableCodeObject *object = [metadataObjects lastObject];
NSLog(@"%@", object.stringValue); [self.session stopRunning];
[self.layer removeFromSuperlayer];
} else {
NSLog(@"获取数据失败");
}
}

最新文章

  1. Spring Boot中的事务管理
  2. 如何快速上手使用STM32库函数
  3. 推荐相关学习 &amp; 典型算法、典型特征、典型推荐系统框架
  4. #Mac技巧#如何在Mac系统上新建TXT文档,以及打开txt文稿的乱码问题如何解决
  5. 如何定义DATATABLE,同时赋值
  6. 在map中根据value获取key
  7. 文件浏览器及数码相框 -2.3.1freetype_pc
  8. hdu 5698 瞬间移动(排列组合)
  9. No.004 Median of Two Sorted Arrays
  10. 原创:应用串行NOR闪存提升内存处理能力
  11. SE 2014年4月3日
  12. unity3d 学习笔记(两)
  13. VIM编辑器使用
  14. Docker容器中安装vim
  15. JAVA课堂测试之一位数组可视化
  16. java之JVM(二)
  17. 微服务架构下分布式事务解决方案——阿里GTS
  18. mysql数据的导入和导出
  19. 十大web安全扫描工具
  20. 【Ray Tracing The Next Week 超详解】 光线追踪2-5

热门文章

  1. UNREFERENCED_PARAMETER()的作用
  2. springboot 整合jdbcTemplate
  3. 复选框回显、全选、非全选、cookie处理数据、json数组对象转换处理学习笔记参考的页面
  4. js中如何对时间进行设置
  5. 使用bottle进行web开发(6):Response 对象
  6. gaggd
  7. AC日记——Dynamic Problem Scoring codeforces 807d
  8. Python3中的新特性(2)——常见陷阱
  9. 51nod 1283 最小周长【注意开根号】
  10. Problem C: 机器翻译【stl-队列】