1 | #import <AVFoundation/AVFoundation.h>
|
2 | #import <UIKit/UIKit.h>
|
3 | #import <EXCamera/EXCameraManager.h>
|
4 | #import <UMCore/UMModuleRegistry.h>
|
5 | #import <UMCore/UMAppLifecycleListener.h>
|
6 | #import <UMCameraInterface/UMCameraInterface.h>
|
7 |
|
8 | @class EXCameraManager;
|
9 |
|
10 | static const int EXFlashModeTorch = 3;
|
11 |
|
12 | typedef NS_ENUM(NSInteger, EXCameraType) {
|
13 | EXCameraTypeFront = AVCaptureDevicePositionFront,
|
14 | EXCameraTypeBack = AVCaptureDevicePositionBack
|
15 | };
|
16 |
|
17 | typedef NS_ENUM(NSInteger, EXCameraFlashMode) {
|
18 | EXCameraFlashModeOff = AVCaptureFlashModeOff,
|
19 | EXCameraFlashModeOn = AVCaptureFlashModeOn,
|
20 | EXCameraFlashModeTorch = EXFlashModeTorch,
|
21 | EXCameraFlashModeAuto = AVCaptureFlashModeAuto
|
22 | };
|
23 |
|
24 | typedef NS_ENUM(NSInteger, EXCameraVideoStabilizationMode) {
|
25 | EXCameraVideoStabilizationModeOff = AVCaptureVideoStabilizationModeOff,
|
26 | EXCameraVideoStabilizationModeStandard = AVCaptureVideoStabilizationModeStandard,
|
27 | EXCameraVideoStabilizationModeCinematic = AVCaptureVideoStabilizationModeCinematic,
|
28 | EXCameraAVCaptureVideoStabilizationModeAuto = AVCaptureVideoStabilizationModeAuto
|
29 | };
|
30 |
|
31 | typedef NS_ENUM(NSInteger, EXCameraAutoFocus) {
|
32 | EXCameraAutoFocusOff = AVCaptureFocusModeLocked,
|
33 | EXCameraAutoFocusOn = AVCaptureFocusModeContinuousAutoFocus,
|
34 | };
|
35 |
|
36 | typedef NS_ENUM(NSInteger, EXCameraWhiteBalance) {
|
37 | EXCameraWhiteBalanceAuto = 0,
|
38 | EXCameraWhiteBalanceSunny = 1,
|
39 | EXCameraWhiteBalanceCloudy = 2,
|
40 | EXCameraWhiteBalanceFlash = 3,
|
41 | EXCameraWhiteBalanceShadow = 4,
|
42 | EXCameraWhiteBalanceIncandescent = 5,
|
43 | EXCameraWhiteBalanceFluorescent = 6,
|
44 | };
|
45 |
|
46 | typedef NS_ENUM(NSInteger, EXCameraExposureMode) {
|
47 | EXCameraExposureLocked = AVCaptureExposureModeLocked,
|
48 | EXCameraExposureAuto = AVCaptureExposureModeContinuousAutoExposure,
|
49 | EXCameraExposureCustom = AVCaptureExposureModeCustom,
|
50 | };
|
51 |
|
52 | typedef NS_ENUM(NSInteger, EXCameraVideoResolution) {
|
53 | EXCameraVideo2160p = 0,
|
54 | EXCameraVideo1080p = 1,
|
55 | EXCameraVideo720p = 2,
|
56 | EXCameraVideo4x3 = 3,
|
57 | };
|
58 |
|
59 | @interface EXCamera : UIView <AVCaptureMetadataOutputObjectsDelegate, AVCaptureFileOutputRecordingDelegate, UMAppLifecycleListener, UMCameraInterface, AVCapturePhotoCaptureDelegate>
|
60 |
|
61 | @property (nonatomic, strong) dispatch_queue_t sessionQueue;
|
62 | @property (nonatomic, strong) AVCaptureSession *session;
|
63 | @property (nonatomic, strong) AVCaptureDeviceInput *videoCaptureDeviceInput;
|
64 | @property (nonatomic, strong) AVCapturePhotoOutput *photoOutput;
|
65 | @property (nonatomic, strong) AVCaptureMovieFileOutput *movieFileOutput;
|
66 | @property (nonatomic, strong) id runtimeErrorHandlingObserver;
|
67 | @property (nonatomic, strong) AVCaptureVideoPreviewLayer *previewLayer;
|
68 |
|
69 | @property (nonatomic, assign) NSInteger presetCamera;
|
70 | @property (nonatomic, assign) EXCameraFlashMode flashMode;
|
71 | @property (nonatomic, assign) CGFloat zoom;
|
72 | @property (nonatomic, assign) NSInteger autoFocus;
|
73 | @property (nonatomic, assign) float focusDepth;
|
74 | @property (nonatomic, assign) NSInteger whiteBalance;
|
75 | @property (assign, nonatomic) AVCaptureSessionPreset pictureSize;
|
76 | @property (nonatomic, assign) AVCaptureVideoStabilizationMode videoStabilizationMode;
|
77 |
|
78 | @property (nonatomic, assign) BOOL isScanningBarCodes;
|
79 | @property (nonatomic, assign) BOOL isDetectingFaces;
|
80 |
|
81 | - (id)initWithModuleRegistry:(UMModuleRegistry *)moduleRegistry;
|
82 | - (void)updateType;
|
83 | - (void)updateFlashMode;
|
84 | - (void)updateFocusMode;
|
85 | - (void)updateFocusDepth;
|
86 | - (void)updateZoom;
|
87 | - (void)updateWhiteBalance;
|
88 | - (void)updatePictureSize;
|
89 | - (void)updateFaceDetectorSettings:(NSDictionary *)settings;
|
90 | - (void)setBarCodeScannerSettings:(NSDictionary *)settings;
|
91 | - (void)takePicture:(NSDictionary *)options resolve:(UMPromiseResolveBlock)resolve reject:(UMPromiseRejectBlock)reject;
|
92 | - (void)record:(NSDictionary *)options resolve:(UMPromiseResolveBlock)resolve reject:(UMPromiseRejectBlock)reject;
|
93 | - (void)stopRecording;
|
94 | - (void)resumePreview;
|
95 | - (void)pausePreview;
|
96 | - (void)onReady:(NSDictionary *)event;
|
97 | - (void)onMountingError:(NSDictionary *)event;
|
98 | - (void)onPictureSaved:(NSDictionary *)event;
|
99 |
|
100 | @end
|
101 |
|
102 |
|