zoukankan      html  css  js  c++  java
  • 第41月第27天 iOS摄像头分辨率枚举

    1.

    -(AVCaptureDevice *)getCameraDeviceWithPosition:(AVCaptureDevicePosition )position{
    
    NSArray *cameras= [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
    
    for (AVCaptureDevice *camera in cameras) {
    
         if ([camera position]==position) {
    
                 [[camera formats] enumerateObjectsUsingBlock:^(AVCaptureDeviceFormat* obj,    NSUInteger idx, BOOL * _Nonnull stop) {
    
            }];
    
                 return camera;
    
         }
    
    }
    
    return nil;
    
    }
    + (AVCaptureDevice *)getCaptureDevicePosition:(AVCaptureDevicePosition)position {
        NSArray *devices = nil;
        if ([UIDevice currentDevice].systemVersion.floatValue >= 10.0) {
            AVCaptureDeviceDiscoverySession *deviceDiscoverySession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera]
                                                                                                                             mediaType:AVMediaTypeVideo
                                                                                                                              position:position];
            devices = deviceDiscoverySession.devices;
        } else {
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"
            devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
    #pragma clang diagnostic pop
        }
        
        for (AVCaptureDevice *device in devices) {
            if (device.position == position) {
                return device;
            }
        }
        return NULL;
    }
    
    
        NSMutableDictionary *formatsDic = [NSMutableDictionary dictionary];
        
        AVCaptureDevicePosition position = AVCaptureDevicePositionFront;
        AVCaptureDevice *captureDevice = [[self class] getCaptureDevicePosition:position];
        
        NSArray<AVCaptureDeviceFormat *> *formats = [captureDevice formats];
        
        for (AVCaptureDeviceFormat *vFormat in formats) {
            CMFormatDescriptionRef formatDescription = vFormat.formatDescription;
            NSLog(@"vFormat formatDescription:%@",formatDescription);
            
            CMFormatDescriptionRef description = vFormat.formatDescription;
            CMVideoDimensions dims = CMVideoFormatDescriptionGetDimensions(description);
            NSLog(@"dims %d height:%d",dims.width, dims.height);
            
            NSString *key = [NSString stringWithFormat:@"%dx%d",dims.width,dims.height];
            if (![formatsDic objectForKey:key]) {
                [formatsDic setObject:key forKey:key];
            }
        }

    https://www.jianshu.com/p/1e1dbfb746a9

  • 相关阅读:
    一个提高查找速度的小技巧
    COM是一个更好的C++
    15道简单算法题
    非递归实现文件夹遍历
    《STL系列》之map原理及实现
    《STL系列》之vector原理及实现
    MVC5 IIS7 403错误
    Vue在线客服系统【开源项目】
    Xcode No account for team "". Add a new account in the Accounts preference pane or verify that your accounts have valid credentials.
    CSS flex布局
  • 原文地址:https://www.cnblogs.com/javastart/p/12371107.html
Copyright © 2011-2022 走看看