对于ios7扫描二维码功能的实现
在ios7曾经,我们开发二维码扫描,或者生产都须要借助第三方的开源库进行开发。
然后升级到ios7时,在passbook中苹果自带二维码扫描功能,并且扫描速度很快,秒杀一切第三方开源库。
所以,我们做二维码的开发选用自带sdk优先级应该高于其它的库。
说到二维码的开发。我们须要用到这两个对象。例如以下。
。
@property (nonatomic,strong) AVCaptureSession *captureSession;
@property (nonatomic,strong) AVCaptureVideoPreviewLayer *videoPreviewLayer;
CaptureSession 这是个捕获会话,也就是说你能够用这个对象从输入设备捕获数据流。
AVCaptureVideoPreviewLayer 能够通过输出设备展示被捕获的数据流。
首先我们应该推断当前设备是否有捕获数据流的设备。
AVCaptureDevice *captureDevice = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *input = [AVCaptureDeviceInputdeviceInputWithDevice:captureDevice error:&error];
if (!input) {
NSLog(@"%@", [errorlocalizedDescription]);
return NO;
}
如上,假设捕获到错误。直接返回。
初始化一个CaptureSession对象
_captureSession = [[AVCaptureSessionalloc] init];
设置会话的输入设备
[_captureSession addInput:input];
相应输出
AVCaptureMetadataOutput *captureMetadataOutput = [[AVCaptureMetadataOutputalloc] init];
[_captureSession addOutput:captureMetadataOutput];
创建一个队列
dispatch_queue_t dispatchQueue;
dispatchQueue = dispatch_queue_create("myQueue",NULL);
[captureMetadataOutput setMetadataObjectsDelegate:selfqueue:dispatchQueue];
[captureMetadataOutput setMetadataObjectTypes:[NSArrayarrayWithObject:AVMetadataObjectTypeQRCode]];
降捕获的数据流展现出来
_videoPreviewLayer = [[AVCaptureVideoPreviewLayeralloc] initWithSession:_captureSession];
[_videoPreviewLayersetVideoGravity:AVLayerVideoGravityResizeAspectFill];
[_videoPreviewLayer setFrame:_viewPreview.layer.bounds];
[_viewPreview.layeraddSublayer:_videoPreviewLayer];
開始捕获
[_captureSession startRunning];
获得的数据在
AVCaptureMetadataOutputObjectsDelegate 唯一定义的方法中
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection;
推断是否有数据。是否是二维码数据
if (metadataObjects != nil && [metadataObjects count] > 0) {
AVMetadataMachineReadableCodeObject *metadataObj = [metadataObjectsobjectAtIndex:0];
if ([[metadataObjtype] isEqualToString:AVMetadataObjectTypeQRCode]) {
//获得扫描的数据。并结束扫描
[selfperformSelectorOnMainThread:@selector(stopReading:)withObject:metadataObj.stringValuewaitUntilDone:NO];
}
}
每天一小步,希望能帮助一些朋友。
晚安啦。
。。。
对于ios7扫描二维码功能的实现相关推荐
- SNF开发平台WinForm-平板拍照及扫描二维码功能
在我们做项目的时候,经常会有移动平板处理检验,审核等,方便移动办公.这时就需要在现场拍照上传问题,把当场问题进行上传,也有已经拍完照的图片或加工过的图片进行上传.还有在车间现场一体机,工控机 这种产物 ...
- 让你的APP轻松加上扫描二维码功能
在这个二维码横行的年代,如果一个APP连扫描二维码的功能都没有是会被耻笑的.今天小老虎教小白们如何为自己的APP添加扫描二维码功能和生成二维码,并做到外部扫描跳转网页,内部扫描跳转具体Activity ...
- 在js中调用微信的扫描二维码功能
在js中调用微信的扫描二维码功能* 关键代码 <html> <head>`在这里插入代码片`<title>js调用微信扫一扫功能测试</title>&l ...
- 在Vue中调用微信的扫描二维码功能
在Vue中调用微信的扫描二维码功能 步骤 新建vue文件(这里采用mint的标签库--就一个按钮~~) 关键代码 <template><div class="login_d ...
- uni-app实现扫描二维码功能
文章目录 1.重点部分的代码 2.页面的效果图 3.总结 1.重点部分的代码 <view class="flex nfc-ewm"><view class=&qu ...
- ionic5 + cordova:使用QRScanner完成扫描二维码功能
接到一个app的改造的任务,主要是适配一款手持设备,在页面上增加一个类似微信的二维码扫描的唤醒按钮,点击之后进入扫描二维码的页面---- 步骤如下: 1.在项目中下载QRCode的cordova插件: ...
- 关于在软件中添加扫描二维码功能的详细步骤及对应的资源。
最近有在一款软件中添加二维码扫描功能,在网上整理了一堆资源后,把一些干货拿出来给大家分享,希望大家以后能更容易的使用这个功能. 详细步骤见这个视频连接:http://www.jikexueyuan.c ...
- Android 实现ZXING扫描二维码功能
1.在build.gradle加入依赖: implementation 'com.journeyapps:zxing-android-embedded:4.3.0' 2.CaptureActivity ...
- Honeywell手机安装扫描二维码功能配置
首先吐糟下,从未见过手机给客户之后还要配置那么多东西才能用的情况.也是醉了. 配置步骤 添加压缩包:将 update_eda50.zip 放到手机的 \honeywell\autoinstall 目录 ...
最新文章
- 设计模式之八大设计原则
- php中的核心函数有哪些,PHP内核探索:函数的分类
- 北京大学2019年数学分析考研试题
- ElasticSearch的中文分词
- python的变量名有哪些_Python 趣闻:如何获得变量的名字?
- JAVA计算机毕业设计大学生旅游拼团网站Mybatis+源码+数据库+lw文档+系统+调试部署
- OpenCV:灰度图转伪彩色图
- 关于百度ueditor图片上传到OSS问题解决
- Spring THREE
- druid监控页面 关闭_druid-springboot-starter默认启用监控页面,公网项目可能外泄DB信息...
- 请教PCI卡的DMA方式问题
- MATLAB颜色识别
- 杨建荣的学习笔记排行榜(r2笔记100天)
- FICO凭证错误:BKPFF$PRDCLN800在FI中达到的项目最大编号
- Windows留后门--教程(一)——Windows系统隐藏账户
- 中级Java 程序员 — 2020
- Android集成百度人脸识别(一)基础版SDK
- Iperf测试问题处理指南
- 用python画象棋棋盘_Python turtle绘画象棋棋盘
- 音视频 — 图像基础
热门文章
- 电脑上可以连接网线可以上网,但是WiFi没有了
- 那年花一个钟用PS改证件照的背景色,今天用Excel我只花了60秒!
- MXNet的训练基础脚本:base_module.py
- Mac使用jd-gui启动报错 This program requires Java 1.8+
- 电子信息类和计算机类专业网课表
- 关于UnityPC端打包参数设置及发布PC端时固定分辨率
- 【生活中的逻辑谬误】质的量化和以出身论英雄
- 给一个DIV的右上解加一个删除按钮
- rk3288 android6,RK3288 的 Android 7.1.2 来了!
- VMware虚拟机的安装以及基一些础命令