首页 > 解决方案 > UIImagePickerController 不会在 iOS 14 上录制视频或拍照

问题描述

我有这个代码

let picker = UIImagePickerController()
picker.sourceType = .camera
picker.cameraDevice = .rear
picker.mediaTypes = [kUTTypeMovie as String]
picker.cameraCaptureMode = .video
picker.videoMaximumDuration = 15.0
picker.videoQuality = .typeLow
picker.allowsEditing = true
picker.delegate = self
picker.showsCameraControls = true
self.present(picker, animated: true, completion: nil)

此代码在 iOS 14 下正常工作。在 iOS 14 上,预览时显示黑屏并且不录制视频或拍照。

我设置正确:

我检查这个:

UIImagePickerController.isCameraDeviceAvailable(.rear)
UIImagePickerController.isSourceTypeAvailable(.camera)

两种方法都返回 true。我不使用模式对话框来启动 UIImagePickerController。

在控制台中,我看到以下消息:

[Camera] 无法读取 exposureBiasesByMode 字典:错误域 = NSCocoaErrorDomain 代码 = 4864 "*** -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: 数据为 NULL" UserInfo={NSDebugDescription=*** -[NSKeyedUnarchiver _initForReadingFromData:error: throwLegacyExceptions:]: 数据为 NULL}

[Camera] [CAMCaptureEngine] 收到会话运行时错误通知:Error Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action" UserInfo={NSLocalizedDescription=Cannot Complete Action, NSLocalizedRecoverySuggestion=稍后重试。}

Xcode 版本 12.4 (12D4e)

更新:

我发现了问题。如果评论 picker.videoQuality = .typeLow 它将适用于 iOS 14。

为什么我不能在 iOS14 上使用低质量?

标签: swiftuiimagepickercontrollerios14

解决方案


推荐阅读