in BasicBroadcast/Utils.swift [26:36]
func checkOrGetPermission(for mediaType: AVMediaType, _ result: @escaping (Bool) -> Void) {
func mainThreadResult(_ success: Bool) {
DispatchQueue.main.async { result(success) }
}
switch AVCaptureDevice.authorizationStatus(for: mediaType) {
case .authorized: mainThreadResult(true)
case .notDetermined: AVCaptureDevice.requestAccess(for: mediaType) { mainThreadResult($0) }
case .denied, .restricted: mainThreadResult(false)
@unknown default: mainThreadResult(false)
}
}