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

来源:互联网 发布:java中map 编辑:程序博客网 时间:2024/06/10 16:58

想实现二维码功能,查了一下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];



0 0
原创粉丝点击