Newer
Older
XinYang_IOS / XYSW / YHScanQRTool / YHScanQREngineManager.h
@zhangfeng zhangfeng on 7 Dec 2023 2 KB 1.8.0
//
//  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