0
我正在嘗試處理詢問用戶是否有權訪問攝像頭。到目前爲止,我有一個方法可以正確返回相機的當前授權狀態,並且當相機權限被拒絕時,應用程序可以正常工作。但是,如果我進入手機設置並將相機權限切換爲「允許」,當我重新啓動應用程序並嘗試啓動捕獲會話時,我不斷收到此奇怪的崩潰(我的相機在應用程序打開時立即啓動FYI)。這裏的崩潰:切換攝像頭權限導致崩潰
*終止應用程序由於未捕獲的異常 'NSGenericException',原因是:
這裏 '* AVCaptureSession不能調用beginConfiguration/commitConfiguration之間startRunning' 是代碼啓動會話(這是我commitConfiguration後):
dispatch_async(captureSessionQueue) {
self.captureSession.startRunning()
}
後,我通過調用這個函數檢查授權狀態上面的代碼被調用。
public func IsCameraAuthorized() -> AVAuthorizationStatus {
var authorizationStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
switch authorizationStatus {
case .NotDetermined:
// permission dialog not yet presented, request authorization
AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo) { granted in
if granted {
authorizationStatus = .Authorized
} else {
// user denied
authorizationStatus = .Denied
}
}
break
case .Authorized:
// go
break
case .Denied, .Restricted:
// the user explicitly denied camera usage or is not allowed to access the camera devices
break
}
return authorizationStatus
}
什麼我做錯了任何想法:與捕獲會話cameraView後,我檢查許可授權只初始化?爲什麼在開始會話前如果我commitConfiguration,這不起作用?
其實它的默認行爲.... –