zoukankan      html  css  js  c++  java
  • 如何优雅地使用iOS系统相机

    NSString *mediaType = AVMediaTypeVideo; // Or AVMediaTypeAudio
    
    AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
    
    // This status is normally not visible—the AVCaptureDevice class methods for discovering devices do not return devices the user is restricted from accessing.
    if(authStatus == AVAuthorizationStatusRestricted){
        NSLog(@"Restricted");
    }
    
    // The user has explicitly denied permission for media capture.
    else if(authStatus == AVAuthorizationStatusDenied){
        NSLog(@"Denied");
    }
    
    // The user has explicitly granted permission for media capture, or explicit user permission is not necessary for the media type in question.
    else if(authStatus == AVAuthorizationStatusAuthorized){
        NSLog(@"Authorized");
    }
    
    // Explicit user permission is required for media capture, but the user has not yet granted or denied such permission.
    else if(authStatus == AVAuthorizationStatusNotDetermined){
    
        [AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {
    
            // Make sure we execute our code on the main thread so we can update the UI immediately.
            //
            // See documentation for ABAddressBookRequestAccessWithCompletion where it says
            // "The completion handler is called on an arbitrary queue."
            //
            // Though there is no similar mention for requestAccessForMediaType, it appears it does
            // the same thing.
            //
            dispatch_async(dispatch_get_main_queue(), ^{
    
                if(granted){
                    // UI updates as needed
                    NSLog(@"Granted access to %@", mediaType);
                }
                else {
                    // UI updates as needed
                    NSLog(@"Not granted access to %@", mediaType);
                }
            });
    
        }];
    
    }
    
    else {
        NSLog(@"Unknown authorization status");
    }
  • 相关阅读:
    export,source
    zookeeper安装笔记
    centos修改启动顺序,登录后提示,启动级别,主机名,免密登录
    CentOS卸载系统自带的OpenJDK
    处理有外键约束的数据
    linux iptables
    centos httpd服务做yum本地源,以及安装Mysql
    Linux命令(一)grep查询
    LaTeX符号和图片
    LaTeX文章结构
  • 原文地址:https://www.cnblogs.com/iOSJason/p/6726643.html
Copyright © 2011-2022 走看看