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");
    }
  • 相关阅读:
    Linux学习之二——档案与目录的属性和权限
    Linux学习之一——开机必备知识
    阿里云实战之二(mysql+phpmyadmin)
    阿里云实战之一(必备程序安装)
    简要揭秘在线代码编辑器
    磕磕碰碰的Chrome之plugin开发
    Oracle导出的sql执行出错
    Spring学习(八)
    Spring学习(七)
    Spring学习(六)
  • 原文地址:https://www.cnblogs.com/iOSJason/p/6726643.html
Copyright © 2011-2022 走看看