YMCameraManager.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // YMCameraManager.h
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/3/17.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import <AVFoundation/AVFoundation.h>
  9. #import <UIKit/UIKit.h>
  10. NS_ASSUME_NONNULL_BEGIN
  11. typedef NS_ENUM(NSInteger, YMCaptureFlashMode) {
  12. YMCaptureFlashModeOff = 0,
  13. YMCaptureFlashModeOn = 1,
  14. YMCaptureFlashModeAuto = 2
  15. };
  16. @protocol YMCameraManagerDelegate <NSObject>
  17. @optional
  18. - (void)cameraDidFinishFocus;
  19. - (void)cameraDidStareFocus;
  20. @end
  21. @interface YMCameraManager : NSObject
  22. @property (nonatomic, assign) id<YMCameraManagerDelegate>delegate;
  23. @property (nonatomic, strong) AVCaptureSession *session;
  24. @property (nonatomic, assign) BOOL canFaceRecognition;
  25. @property (nonatomic, copy) void (^faceRecognitonCallBack)(CGRect);
  26. //检查是否有授权相机
  27. + (BOOL)checkAuthority;
  28. - (instancetype)initWithParentView:(UIView *)view;
  29. - (void)setFaceRecognitonCallBack:(void (^)(CGRect faceFrame))faceRecognitonCallBack;
  30. /** 添加摄像范围到View,传进来的View的大小,就是摄像范围的大小*/
  31. - (void)configureWithParentLayer:(UIView *)parent;
  32. /** 切换前后镜*/
  33. - (void)switchCamera:(BOOL)isFrontCamera didFinishChanceBlock:(void(^)(void))block;
  34. /** 拍照 (原图是你照相机摄像头能拍出来的大小,比例图是按照原图的比例去缩小一倍,裁剪图是你设置好的摄像范围的图片)*/
  35. - (void)takePhotoWithImageBlock:(void(^)(UIImage *originImage,UIImage *scaledImage,UIImage *croppedImage))block;
  36. /** 切换闪光灯模式*/
  37. - (void)switchFlashModeDidFinishChanceBlock:(void (^)(YMCaptureFlashMode flashMode))block;
  38. /** 点击对焦*/
  39. - (void)focusInPoint:(CGPoint)devicePoint;
  40. /** 开启对焦监听 默认YES*/
  41. - (void)setFocusObserver:(BOOL)yes;
  42. @end
  43. NS_ASSUME_NONNULL_END