简单使用系统的设备实现二维码扫描
这里我用了系统的东西简单的实现了一下扫描二维码
.h
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface saoMiaoViewController : UIViewController
@property(nonatomic,retain) UIView * sanRectView;
//硬件设备
@property(nonatomic,retain) AVCaptureDevice * device;
//输入设备
@property(nonatomic,retain) AVCaptureDeviceInput * input;
//输出设备
@property(nonatomic,retain) AVCaptureMetadataOutput * outPut;
//桥梁。链接输入和输出设备
@property(nonatomic,retain)AVCaptureSession * session;
@property(nonatomic,retain)AVCaptureVideoPreviewLayer * preView;
@end
接下来看.m文件
@interface saoMiaoViewController ()<AVCaptureMetadataOutputObjectsDelegate>
@end
@implementation saoMiaoViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"进入连接";
CGSize windowSize = [UIScreen mainScreen].bounds.size;
CGSize scanSize = CGSizeMake(windowSize.width*3/5, windowSize.width * 3/5);
CGRect scanRect = CGRectMake( ((windowSize.height-scanSize.height)/2)/windowSize.height,((windowSize.width-scanSize.width)/2)/windowSize.width, (scanSize.height+10)/windowSize.height,(scanSize.width + 10)/windowSize.width);
self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
self.input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil];
self.outPut = [[AVCaptureMetadataOutput alloc] init];
[self.outPut setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
self.session = [[AVCaptureSession alloc] init];
[self.session setSessionPreset:([UIScreen mainScreen].bounds.size.height<500)?AVCaptureSessionPreset640x480:AVCaptureSessionPresetHigh];
[self.session addInput:self.input];
[self.session addOutput:self.outPut];
self.outPut.metadataObjectTypes=@[AVMetadataObjectTypeQRCode];
self.preView = [AVCaptureVideoPreviewLayer layerWithSession:self.session];
self.preView.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.preView.frame = [UIScreen mainScreen].bounds;
self.preView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.7].CGColor;
[self.view.layer insertSublayer:self.preView atIndex:0];
self.sanRectView = [UIView new];
[self.view addSubview:self.sanRectView];
self.sanRectView.frame = CGRectMake(0, 0, scanSize.width, scanSize.height);
self.sanRectView.center = CGPointMake(CGRectGetMidX([UIScreen mainScreen].bounds), CGRectGetMidY([UIScreen mainScreen].bounds));
self.sanRectView.layer.borderColor = [UIColor whiteColor].CGColor;
self.sanRectView.layer.borderWidth = 2;
self.outPut.rectOfInterest =scanRect;
//开始捕获
[self.session startRunning];
}
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
if ( (metadataObjects.count==0) )
{
return;
}
if (metadataObjects.count>0) {
[self.session stopRunning];
AVMetadataMachineReadableCodeObject *metadataObject = metadataObjects.firstObject;
SendUrlViewController * send = [[SendUrlViewController alloc] init];
send.nameUrl = metadataObject.stringValue;
[self.navigationController pushViewController:send animated:YES];
}
}
此文纯属个人为了记忆而写。当然要是能帮到别人当然也很开心了A.A
简单使用系统的设备实现二维码扫描相关推荐
- Android直播带货系统中如何实现二维码扫描功能
自李佳琦的出现将直播带货成功的引向了"巅峰",为了响应众平台和用户的需求,开发Android直播带货系统成为当下的开发热潮.那么在平时的直播软件中,登录.分享.支付等场景中经常出现 ...
- honeywell 设备开启二维码扫描功能
新设备二维码扫描功能开启流程: 1.开始->程序->Power Tools 打开ScanWedge,右下角会出现条码小图标. 2.点击条码小图标选择Settings. 3.在Setting ...
- Android二维码扫描之ZXing快速项目集成
<Android二维码扫描之ZXing快速项目集成> 二维码扫描现在是一直比较多的应用场景,Android的开源项目ZXing提供了完整.成熟的解决方案,如果仅仅是出于快速开发的目的,可以 ...
- html5调用设备摄像头,实现二维码扫描
html5调用设备摄像头,实现二维码扫描 最近在做一个签到系统,由于我直接使用了纯网页,因此调用摄像头进行扫码成了大问题.经过几番费力的百度终于找到解决方法. 主要用到MediaDevices.get ...
- [Android开源]一个非常简单易用用来花式展示二维码样式生成的库QRCodeStyle
类库说明 一个非常简单易用用来花式展示二维码样式生成的库 自由组合二维码样式 使用范例 设置带圆边圈的logo Bitmap logo = BitmapFactory.decodeResource(g ...
- iOS原生实现二维码扫描
iOS原生实现二维码扫描 最近项目上需要开发扫描二维码进行签到的功能,主要用于开会签到的场景,所以为了避免作弊,我们再开发时只采用直接扫描的方式,并且要屏蔽从相册读取图片,此外还在二维码扫描成功签到时 ...
- iOS二维码扫描/识别
一直以为二维码功能比较简单, 从来没有放在心上过, 由于公司项目需要这个功能, 也算是第一次真正去做二维码的东西. 从网上看别人的博客很多都是写的比较碎片, 没有一个能做的比较完整的, 今天 ...
- js 二维码扫描盒/枪对接
二维码扫描盒/枪对接 前言 二维码应用非常广泛,使用场景有:手机上网.个人名片.凭证类.溯源类.数据防伪等等,如下图: 使用也非常简单,外接USB接口, 如下图,以下就是我对接的盒子 原理 拿到二 ...
- ios7 苹果原生二维码扫描(和微信类似)
在ios7苹果推出了二维码扫描,以前想要做二维码扫描,只能通过第三方ZBar与ZXing. ZBar在扫描的灵敏度上,和内存的使用上相对于ZXing上都是较优的,但是对于 "圆角二维码&qu ...
最新文章
- 用vue优雅地编写UI组件的几条指导原则
- WebService(JAX-WS、XFire、Axis三种)获取客户端ip
- 2018中国C++大会精彩回顾
- python爬虫本科容易找工作吗_python爬虫基础学完了,我真的能找到一份工作吗?...
- Web Hacking 101 中文版 二十、漏洞报告
- Java高级语法笔记-文件读写(2)
- mysql 重启爆红,MySQL 启动报错
- gps高斯utm_经纬度与高斯坐标及经纬度与UTM坐标互转
- HTML中嵌入视频和音频代码
- 《工业设计史》第七章:艺术变革与现代设计
- web渗透学习目录-新手打开思路
- 技术人生:高山仰止,景行观止,虽不能至,我心向往之
- 注册表终极修改ie主页的方法
- 基于高通sdx12平台,简单介绍编译(bitbake)
- 怎样才算是一个好的测试用例
- matlab数组删除指定行列元素
- 编辑或删除Word文档脚注中的横线
- WebGL入门之基于WebGL的3D可视化引擎介绍
- python可视化数据分析-Python数据分析与可视化从入门到精通
- 贵州学业水平计算机考试真题,贵州省2017年7月普通高中学业水平考试数学试卷(真题卷附全解析)...