您的位置:首页 > 移动开发 > IOS开发

iOS使用zbar以及AVFoundation实现二维码扫描

2015-10-20 14:50 369 查看
想实现二维码功能,查了一下zxing已经过时,avfoundation也可以实现,最终选择了zbar 扫描速度快 占用cpu不高~

但是真的用起来发现一切都是假的。。各种问题层出不穷!!!

ZBar:

1,最严重的问题是运行起来占用cpu极其高!各种crash,卡顿 

2,识别非常缓慢!!可能iOS7以下会好一些吧

3.  无法在arm64的模拟器上运行,需要弄静态库,官方提供的在真机上运行没有问题 这里有个良心编译好的zbar供大家使用,亲测可行:

http://download.csdn.net/detail/zhu410289616/7464153#comment




并且现在zbar已经不更新了。。



最终我还是从网上找了个用AVFoundation系统自带的一个demo,来完成了二维码条形码扫描,扫起来那叫一个顺畅…………

折腾了我大半天 发现系统的才是最好的。。

这个代码也用到了zbarsdk。需要去github上下载~

步骤:To add the SDK to an Xcode project:



   1. Drag ZBarSDK into your Xcode project.

   3. Add these system frameworks to your project:

      * AVFoundation.framework (weak)

      * CoreMedia.framework (weak)

      * CoreVideo.framework (weak)

      * QuartzCore.framework

      * libiconv.dylib


Step3.在ViewController.h 继承 <ZBarReaderDelegate>协议



demo地址:http://download.csdn.net/detail/hitourlee/6954831#comment



具体直接看源码吧~

还有一点就是 如果只想进行二维码的识别,只需要调一下识别类型就可以了。

// 条码类型 AVMetadataObjectTypeQRCode 二维码只选这个
_output.metadataObjectTypes =@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeCode39Code,AVMetadataObjectTypeCode128Code,AVMetadataObjectTypeCode39Mod43Code,AVMetadataObjectTypeEAN13Code,AVMetadataObjectTypeEAN8Code,AVMetadataObjectTypeCode93Code];


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: