![](/img/trans.png)
[英]Is it possible to use camera permission but block "Take video" option in a iOS App?
[英]Camera, Microphone and Audio/Video storage permission for ios app
我想制作一個視頻錄制應用程序,這就是為什么我需要相機,麥克風和存儲權限。 在我的info.plist中,我添加了camera,麥克風和photos權限。 問題在這里,當應用打開時,需要權限。 它需要相機和麥克風的許可,幾分鍾后需要照片的許可。
class UserPermission: NSObject {
//check camera and microphone is granted
func checkAllPermissionGranted() -> Bool{
print("photo permission: \(checkPhotoLibraryPermission())")
if(checkCameraAccess() && checkMicrophoneAccess() && checkPhotoLibraryPermission()){
return true
}
return false
}
// //storage access permission
func checkPhotoLibraryPermission() -> Bool {
var isPermited: Bool = false
let status = PHPhotoLibrary.authorizationStatus()
switch status {
case .authorized:
//handle authorized status
isPermited = true
break
case .denied, .restricted :
//handle denied status
isPermited = false
break
case .notDetermined:
// ask for permissions
PHPhotoLibrary.requestAuthorization { status in
switch status {
case .authorized:
// as above
isPermited = true
break
case .denied, .restricted:
// as above
isPermited = false
break
case .notDetermined:
// won't happen but still
isPermited = false
break
@unknown default:
print("error")
}
}
@unknown default:
print("error")
}
return isPermited
}
//microphone access permission
func checkMicrophoneAccess() -> Bool {
var isparmited = false
switch AVAudioSession.sharedInstance().recordPermission {
case .denied:
print("Denied, request permission from settings")
//presentPhoneSettings()
case .granted:
print("Authorized, proceed")
isparmited = true
case .undetermined:
AVAudioSession.sharedInstance().requestRecordPermission { success in
if success {
print("Permission granted, proceed")
isparmited = true
} else {
print("Permission denied")
isparmited = false
}
}
@unknown default:
print("error")
}
return isparmited
}
//camera access permission
func checkCameraAccess() -> Bool {
var isparmited = false
switch AVCaptureDevice.authorizationStatus(for: .video) {
case .denied:
print("Denied, request permission from settings")
//presentPhoneSettings()
case .restricted:
print("Restricted, device owner must approve")
isparmited = false
case .authorized:
print("Authorized, proceed")
isparmited = true
case .notDetermined:
AVCaptureDevice.requestAccess(for: .video) { success in
if success {
print("Permission granted, proceed")
isparmited = true
} else {
print("Permission denied")
isparmited = false
}
}
@unknown default:
print("error")
}
return isparmited
}
}
但是,我需要這些許可,例如,首先要照相機,然后是麥克風,然后是照片,但最后一個(照片)沒有延遲。 請幫幫我。
您可以制作某種教程collectionView,並且每個單元格可以包含帶有按鈕的權限描述,以觸發系統權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.