二维码 AVCaptureMetadataOutput

基本描述:

/*!
 @class AVCaptureMetadataOutput
 @abstract
    AVCaptureMetadataOutput is a concrete subclass of AVCaptureOutput that can be used to process metadata objects
    from an attached connection.
//AVCaptureMetadataOutput 是 AVCaptureOutput 的一个子类,而这个子类能够传递元数据对象(AVMetadataObject s) , 
 @discussion
    Instances of AVCaptureMetadataOutput emit arrays of AVMetadataObject instances (see AVMetadataObject.h), such 
    as detected faces. Applications can access the metadata objects with the captureOutput:didOutputMetadataObjects:fromConnection: 
    delegate method.
 //应用通过代理方法:didOutputMetadataObjects:fromConnection: 获得数据
*/

方法介绍:

唯一的方法:
- (void)setMetadataObjectsDelegate:(id)objectsDelegate queue:(dispatch_queue_t)objectsCallbackQueue;
//设置代理,这个队列是数据返回时执行的队列,也就是代理方法执行的队列,队列不能为空

代理需要执行方法:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection;
//注意这个方法执行是所在的队列是开始在setMetadataObjectsDelegate:queue: 中设定的队列.

属性:

@property(nonatomic, readonly) id metadataObjectsDelegate;
//代理对象
@property(nonatomic, readonly) dispatch_queue_t metadataObjectsCallbackQueue;
//代理方法回调是, 所在的队列
@property(nonatomic, readonly) NSArray *availableMetadataObjectTypes;
// 根据输入产生的元数据的类型
@property(nonatomic, copy) NSArray *metadataObjectTypes;
//自己设定的元数据的类型,这里需要注意的一点是,如果metadataObjectTypes里面的任何一个元素在availableMetadataObjectTypes 里面没有,那么系统会抛出一个NSInvalidArgumentException. 
//这里理解不太透,以后修改
@property(nonatomic) CGRect rectOfInterest  ;
//直接翻译是感兴趣的区域, 也就是说系统解码时分析数据的区域.默认是(0,0,1,1).即对整个相机显示的内容区域进行解析
// 设置rectOfInterest会使识别效率提高,(因为数据的冗余度变低,解码是计算的数据量变小)

你可能感兴趣的:(二维码 AVCaptureMetadataOutput)