macOS 10.14请求麦克风和摄像机授权

文章参考:https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/requesting_authorization_for_media_capture_on_macos?language=objc

1.背景

macOS 10.14增加了对麦克风和摄像机的访问授权,在访问时会弹框请求授权。

image

2.主动请求授权

如果在访问到麦克风和摄像机的时候再弹出授权,可能有点晚,我们可以在App启动的时候就主动提示授权。
在工程的info.plist里面加上麦克风和摄像机的访问说明的Key:
Privacy - Camera Usage Description
Privacy - Microphone Usage Description

Value可以写上要访问的原因,不想写空着也行。

image

代码如下:

// macos 10.14以上系统才执行
if(@available(macos 10.14, *))
{
    // 请求摄像机授权,v如果是麦克风的话参数是AVMediaTypeAudio.
    switch ([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo])
    {
        case AVAuthorizationStatusAuthorized:
        {
            // 已经授权同意.
            [self setupCaptureSession];
            break;
        }
        case AVAuthorizationStatusNotDetermined:
        {
            // 从未处理过授权
            [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
                if (granted) {
                    [self setupCaptureSession];
                }
            }];
            break;
        }
        case AVAuthorizationStatusDenied:
        {
            // 授权拒绝
            return;
        }
        case AVAuthorizationStatusRestricted:
        {
            // 家长管制等
            return;
        }
    }
}

重置授权状态

tccutil reset Microphone
tccutil reset Camera

tccutil reset Microphone app_Identifier
tccutil reset Camera app_Identifier

你可能感兴趣的:(macOS 10.14请求麦克风和摄像机授权)