码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 中二维码扫描(zxingObjc和原生)

时间:2015-11-10 12:18:11      阅读:1273      评论:0      收藏:0      [点我收藏+]

标签:

对于网上的第三方 ZXingObjC,自我感觉是对原生的AVFoundation中关于二维码部分的一个封装,大致看看ZXingObjC的内部实现其事和原生的实现相似的,里面都用到了AVFoundation框架中的几个类:AVCaptureSession,AVCaptureDevice,AVCaptureInput,AVCaptureOutput.刚看到这几个类以及类内部的属性和变量的时候,完全不知道是什么,慢慢的才有了了解:

     官网对这几个类的解释是:

  • An instance of AVCaptureDevice to represent the input device, such as a camera or microphone
  • An instance of a concrete subclass of AVCaptureInput to configure the ports from the input device
  • An instance of a concrete subclass of AVCaptureOutput to manage the output to a movie file or still image
  • An instance of AVCaptureSession to coordinate the data flow from the input to the output

    从官网可以了解到:

   1. AVCaptureDevice 即为输入数据的设备,比如相机,麦克风等;

   2. AVCaptureInput (抽象类 下面会有多个子类如AVDeviceCaptureInput)用于配置输入设备的端口(这个端口用AVCaptureInputPort表示,这个端口代表了从输入设备输入的数据流的类型,数据流的类型有多种:

NSString *const AVMediaTypeVideo;

NSString *const AVMediaTypeAudio;

NSString *const AVMediaTypeText;

NSString *const AVMediaTypeClosedCaption;

NSString *const AVMediaTypeSubtitle;

NSString *const AVMediaTypeTimecode;

NSString *const AVMediaTypeTimedMetadata;

NSString *const AVMediaTypeMetadata;

NSString *const AVMediaTypeMuxed;

比如AVDeviceCaptureInput就有一个用于表示 “视频数据流:AVMediaTypeVideo”的端口);

  3.AVCaptureOutput 表示捕获数据输出管理 用于表示将数据输出的数据类型为视频文件或者图片;

  4.AVCaptureSession 用于协调输入数据流一直到输出数据的处理过程。

下面的官网的一张图片展示了这几个类之间的关系

技术分享

在将AVCaptureInput和AVCaptureOutput添加到session中的时候会创建一个AVCaptureConnection,用于去在输入和输出之间建立连接

技术分享

 

 

下面说一下关于AVCaptureDevice的几个属性

Focus Mode:聚焦模式

Exposure Mode:曝光模式

Flash Mode:闪光灯模式

Torch Mode:手电筒模式

White Balance:白平衡模式

AVCaptureDevicePosition:设备位置

   AVCaptureDevicePositionUnspecified = 0,未指定位置

   AVCaptureDevicePositionBack  = 1, 后置的摄像头

   AVCaptureDevicePositionFront = 2 前置摄像头

 

技术分享

iOS 中二维码扫描(zxingObjc和原生)

标签:

原文地址:http://www.cnblogs.com/fengchuihualuo/p/4936782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!