// // YHScanQREngineManager.h // YHAVFoundtionQRScan // // Created by Foxconn on 2018/1/25. // Copyright © 2018年 Foxconn. All rights reserved. // #import <Foundation/Foundation.h> #import <AVFoundation/AVFoundation.h> #import <UIKit/UIKit.h> @class YHScanQREngineManager; @protocol YHScanQREngineManagerDelegate <NSObject> @required //必须要实现的代理方法 返回的是扫描的结果 -(void) scanQREngineManager:(YHScanQREngineManager *) engineManager didOutputMetadaObjects:(NSArray *) metadaObjects; @end @interface YHScanQREngineManager : NSObject //代理 @property (nonatomic,weak) id <YHScanQREngineManagerDelegate> delegate; //是否打开手电筒 默认为NO @property (nonatomic,assign) BOOL isTorch; //扫描的设备 @property (nonatomic,strong) AVCaptureDevice *nativeDevice; //扫描的图层 @property (nonatomic,strong) AVCaptureVideoPreviewLayer *scanPreviewLayer; //实例化单例 对象 +(instancetype) sharedEngineManager; //--------------------------必须实现的方法---------------------- /* sessionPreset : 会话采集数据类型 推荐使用AVCaptureSessionPreset1920x1080 读取率高 metadataObjectTypes : 扫码支持的编码格式 二维码 条形码等 currentController : YHScanQREngineManager单例所在的控制器 scanViewX scanViewY scanViewWidth scanViewHeight 这四个为设置的扫描范围 分别对应横坐标X 纵坐标Y 扫描的宽度Width 扫描的高度Height */ - (void)setupSessionPreset:(NSString *)sessionPreset metadataObjectTypes:(NSArray *)metadataObjectTypes currentController:(UIViewController *)currentController scanViewX:(float) X scanViewY:(float) Y scanViewWidth:(float) width scanViewHeight:(float) height; //------------------------扫描成功后要实现的方法 在代理方法中实现-------------------- //停止会话对象扫描 -(void) scanSuccessStopRunning; //移除 scanPreviewLayer对象 -(void) scanSuccessRemoveVideoPreviewFromSuperLayer; // 扫描成功后要播放的音效文件 -(void)scanSuccessPlaySoundPath:(NSString *)path; @end