lxy 1 rok pred
rodič
commit
b0ef4e26cf

+ 3 - 3
Example/LenzCameraNativeModuleForRN/LENZViewController.m

@@ -100,9 +100,9 @@
     NSMutableDictionary *dict = [NSMutableDictionary dictionary];
     dict[@"dataRetainedMode"] = @"retain";
     NSArray *array = @[
-    @{@"flashMode": @"auto", @"isRemake":@(0),@"mode":@"continuous", @"quality":@(100),@"type":@"back"  },
-    @{@"flashMode": @"auto", @"isRemake":@(0),@"mode":@"single", @"quality":@(100),@"type":@"back"  },
-    @{@"flashMode": @"auto", @"isRemake":@(1),@"mode":@"video", @"quality":@(100),@"type":@"back", @"videoQuality":@(1080)},
+//    @{@"flashMode": @"auto", @"isRemake":@(0),@"mode":@"continuous", @"quality":@(100),@"type":@"back"  },
+//    @{@"flashMode": @"auto", @"isRemake":@(0),@"mode":@"single", @"quality":@(100),@"type":@"back"  },
+    @{@"flashMode": @"auto", @"isRemake":@(1),@"mode":@"video", @"quality":@(100),@"type":@"back", @"videoQuality":@(720)},
     @{@"flashMode": @"auto", @"isRemake":@(1),@"mode":@"panorama", @"quality":@(100),@"type":@"back", @"videoQuality":@(1080)},
     @{@"flashMode": @"auto", @"isRemake":@(1),@"mode":@"panoramaPlus", @"quality":@(100),@"type":@"back", @"videoQuality":@(480)}
     ];

+ 1 - 1
LenzCameraNativeModuleForRN/Classes/inner/CameraManager/CameraManager.h

@@ -26,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN
 - (void)focusOn:(CGPoint)point;
 - (void)focusOn:(CGPoint)point device: (AVCaptureDevice*)device;
 
-- (void)setResolutionFor:(AVCaptureDevicePosition)position with: (NSInteger)desiredWidth model:(SDKCaptureModeIndex)model;
+- (void)setResolutionFor:(AVCaptureDevicePosition)position with: (NSInteger)desiredHeight model:(SDKCaptureModeIndex)model;
 - (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position;
 
 @end

+ 20 - 9
LenzCameraNativeModuleForRN/Classes/inner/CameraManager/CameraManager.m

@@ -20,7 +20,7 @@
 @synthesize front = _front;
 @synthesize back = _back;
 
-- (void)setResolutionFor:(AVCaptureDevicePosition)position with: (NSInteger)desiredWidth model:(SDKCaptureModeIndex)model{
+- (void)setResolutionFor:(AVCaptureDevicePosition)position with: (NSInteger)desiredHeight model:(SDKCaptureModeIndex)model{
     
     AVCaptureDevice* device = [self cameraWithPosition:position];
     if(device == nil){
@@ -31,18 +31,17 @@
     
     AVCaptureDeviceFormat *bestFormat;
     CGFloat aspect = 1;
-    
+    //分辨率
+    CGFloat radio = 16.0/9.0;
+    if(model == SDK_CAPTURE_MODE_SINGLE || model == SDK_CAPTURE_MODE_CONTINUOUS) {
+        radio = 4.0/3.0;
+    }
     
     for (AVCaptureDeviceFormat *format in supportedFormats) {
         CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions((CMVideoFormatDescriptionRef)[format formatDescription]);
         CMVideoDimensions bestVideoDimensions = CMVideoFormatDescriptionGetDimensions((CMVideoFormatDescriptionRef)[bestFormat formatDescription]);
 
-        //分辨率
-        CGFloat radio = 16.0/9.0;
-        if(model == SDK_CAPTURE_MODE_SINGLE || model == SDK_CAPTURE_MODE_CONTINUOUS) {
-            radio = 4.0/3.0;
-        }
-        if (((CGFloat)dimensions.width/(CGFloat)dimensions.height) == radio && dimensions.width <= desiredWidth) {
+        if (((CGFloat)dimensions.width/(CGFloat)dimensions.height) == radio && dimensions.height <= desiredHeight) {
 
             if(dimensions.width == 1080 && (model == SDK_CAPTURE_MODE_PANORAMA || model == SDK_CAPTURE_MODE_INTELLEGENCE_PANORAMA)) {
                 aspect = (CGFloat)dimensions.width / dimensions.height;
@@ -50,7 +49,7 @@
                 break;
             } else {
                 aspect = (CGFloat)dimensions.width / dimensions.height;
-                if (bestVideoDimensions.width <= dimensions.width) {
+                if (bestVideoDimensions.height <= dimensions.height) {
                     bestFormat = format;
                 }
             }
@@ -60,6 +59,18 @@
     [device lockForConfiguration:nil];
     if(bestFormat) {
         [device setActiveFormat:bestFormat];
+    } else {
+        for (AVCaptureDeviceFormat *format in supportedFormats) {
+            CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions((CMVideoFormatDescriptionRef)[format formatDescription]);
+            CMVideoDimensions bestVideoDimensions = CMVideoFormatDescriptionGetDimensions((CMVideoFormatDescriptionRef)[bestFormat formatDescription]);
+            if (((CGFloat)dimensions.width/(CGFloat)dimensions.height) == radio) {
+                if (bestVideoDimensions.height <= dimensions.height) {
+                    bestFormat = format;
+                    break;
+                }
+            }
+        }
+        [device setActiveFormat:bestFormat];
     }
     
     [device setActiveVideoMaxFrameDuration:CMTimeMake(1, 10)];

+ 1 - 1
LenzSDK.podspec

@@ -8,7 +8,7 @@
 
 Pod::Spec.new do |s|
   s.name             = 'LenzSDK'
-  s.version          = '2.0.9'
+  s.version          = '2.1.0'
   s.summary          = 'A short description of LenzSDK.'
 
 # This description is used to generate tags and improve search results.