メモです。 すごくまとまっている記事ではないです。
switch AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo) {
case .Authorized:
// キャプチャー開始など
case .Denied:
// 拒否されてる。設定画面への遷移示唆など
case .NotDetermined:
// 初回。確認ダイアログをここで出すとハンドリングが楽。
AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo) { \[weak self\] granted in
if granted {
// キャプチャー開始など
} else {
// 拒否された。設定画面への遷移示唆など
}
}
case .Restricted:
print("Restricted")
// 利用が制限されている。ペアレント・コントロール?
}