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

  • 相关阅读:
    TensorFlow中的基本概念
    理解 tf.Variable、tf.get_variable以及范围命名方法tf.variable_scope、tf.name_scope
    深度神经网络关键词解释
    [python] os.path.join() 与 sys.path
    Git 遇到的坑
    [转] 资深程序员得到的职场经验教训
    VS CODE 快捷键
    解决VS Code使用code runner开发Python乱码问题
    熵,条件熵,互信息,交叉熵
    Visual Studio Code 支持TensorFlow配置支持
  • 原文地址:https://www.cnblogs.com/javastart/p/12371107.html
Copyright © 2011-2022 走看看