macOS 10.14請(qǐng)求麥克風(fēng)和攝像機(jī)授權(quán)

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

1.背景

macOS 10.14增加了對(duì)麥克風(fēng)和攝像機(jī)的訪(fǎng)問(wèn)授權(quán),在訪(fǎng)問(wèn)時(shí)會(huì)彈框請(qǐng)求授權(quán)。

image

2.主動(dòng)請(qǐng)求授權(quán)

如果在訪(fǎng)問(wèn)到麥克風(fēng)和攝像機(jī)的時(shí)候再?gòu)棾鍪跈?quán),可能有點(diǎn)晚,我們可以在A(yíng)pp啟動(dòng)的時(shí)候就主動(dòng)提示授權(quán)。
在工程的info.plist里面加上麥克風(fēng)和攝像機(jī)的訪(fǎng)問(wèn)說(shuō)明的Key:
Privacy - Camera Usage Description
Privacy - Microphone Usage Description

Value可以寫(xiě)上要訪(fǎng)問(wèn)的原因,不想寫(xiě)空著也行。

image

代碼如下:

// macos 10.14以上系統(tǒng)才執(zhí)行
if(@available(macos 10.14, *))
{
    // 請(qǐng)求攝像機(jī)授權(quán),v如果是麥克風(fēng)的話(huà)參數(shù)是AVMediaTypeAudio.
    switch ([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo])
    {
        case AVAuthorizationStatusAuthorized:
        {
            // 已經(jīng)授權(quán)同意.
            [self setupCaptureSession];
            break;
        }
        case AVAuthorizationStatusNotDetermined:
        {
            // 從未處理過(guò)授權(quán)
            [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
                if (granted) {
                    [self setupCaptureSession];
                }
            }];
            break;
        }
        case AVAuthorizationStatusDenied:
        {
            // 授權(quán)拒絕
            return;
        }
        case AVAuthorizationStatusRestricted:
        {
            // 家長(zhǎng)管制等
            return;
        }
    }
}

重置授權(quán)狀態(tài)

tccutil reset Microphone
tccutil reset Camera

tccutil reset Microphone app_Identifier
tccutil reset Camera app_Identifier
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容