扫描

来源:互联网 发布:js 点击 获取焦点事件 编辑:程序博客网 时间:2024/04/29 05:14
扫描
扫描原理:底层通过捕捉设备,捕捉到一个图形,将图形转换成一个链接地址,最终需要的时一个url,只要调openUrl就可以跳到对应的地址去。
->ios7之后就自带扫描—AVFoundation框架灵敏度和内存使用都是最有的。
->ios7之前
1>zbar,在扫描的灵敏度和内存的使用上角Zxing都是较优的,是github的开源库
2>Zxing,是goole code上的一个开源条形条形码扫描库,是用java语言写的。有人曾用oc代码移植过,但是移植得不够完整,而且已经停止维护了,效率也非常低
现在最低版本是ios6,如果要兼容ios6-ios7之间的版本,就需要用一个if,,else,,判断版本
使用Zbar的时候,在github中下载ZbarSDK,包里面有一个ReaderSample可以通过它了解Zbar的用法


//1、初始化捕捉设备

    //2、从捕捉设备创建输入流

    //3、初始化媒体数据输出流

    //4、初始化捕捉回话

    //4.1将输入流添加至会话

    //4.2将输出流添加至会话

    //5、创建串行队列,将媒体输出流添加至队列中,并设置代理

    //5.2设置媒体输出类型为:二维码

    //6、从捕捉会话创建预览图层

    //6.1设置预览图层填充方式

    //6.2设置图层的frame

    //6.3将预览图层添加到预览view的图层上

    //开始扫描

扫描一直在捕捉,需要有比较大的消耗,可能等待比较久,不能放在主线程中,为了不影响主线程,需要开一个子线程去操作

//oc中多线程的方式
GCD(c语言封装的)、 NSThread(oc中的)、NSOperationQueue
苹果规范要求,在子线程中不允许修改主线程的东西(比如修改ui)
0 0