首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Xcode摄像机:无法读取exposureBiasesByMode字典

Xcode摄像机:无法读取exposureBiasesByMode字典
EN

Stack Overflow用户
提问于 2020-09-25 09:35:58
回答 9查看 9.7K关注 0票数 28

我最近在Xcode 12.0.1版的UIImagePickerController中发现了这个错误

_initForReadingFromData:error:throwLegacyExceptions::摄像机无法读取exposureBiasesByMode字典: Error Domain=NSCocoaErrorDomain Code=4864“* -NSKeyedUnarchiver数据为空”UserInfo={NSDebugDescription=*** -NSKeyedUnarchiver exposureBiasesByMode数据为空}

还有其他人看到这个错误吗?你是怎么修好的?

EN

回答 9

Stack Overflow用户

发布于 2021-03-09 20:22:48

如果将图像选择器自定义为imagePicker.allowsEditing = true,则必须使用以下方法获取图像:

代码语言:javascript
复制
if let pickedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
    capturedImage = pickedImage    
}

如果您使用的是imagePicker.allowsEditing = false,请使用它来选择图像:

代码语言:javascript
复制
if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
    capturedImage = pickedImage        
}

如果你不遵循这个组合,你可能会得到这个错误。

票数 6
EN

Stack Overflow用户

发布于 2020-12-07 19:53:33

在我的例子中,我通过尝试使用图像数据和与Files同步,得到了这个bug。在Info.plist中添加此权限会产生所有差异,并使错误消失:

<key>LSSupportsOpeningDocumentsInPlace</key> <true/>

票数 2
EN

Stack Overflow用户

发布于 2020-10-12 07:14:38

我也经历过同样的问题。我导入了AVKit而不是og AVFoundation,并试图将视频显示在本机记录器视图中。这给了我一个异常,告诉我要将NSMicrophoneUsageDescription添加到info.plist文件中,之后,我能够在自定义视图中显示实时视频。

因此,我认为问题在于iOS 14对权限非常挑剔,而且当视频未在本地视图中显示时,显示正确的异常可能会出错。

不管怎么说,这对我有用:

代码语言:javascript
复制
import AVKit
import MobileCoreServices

@IBOutlet weak var videoViewContainer: UIView!

private let imagePickerController = UIImagePickerController()

override func viewDidLoad() {
    super.viewDidLoad()
    initCameraView()
}

func initCameraView() {
    // Device setup
    imagePickerController.delegate = self
    imagePickerController.sourceType = .camera
    imagePickerController.mediaTypes = [kUTTypeMovie as String]
    imagePickerController.cameraCaptureMode = .video
    imagePickerController.cameraDevice = .rear
    
    // UI setup
    addChild(imagePickerController)
    videoViewContainer.addSubview(imagePickerController.view)
    imagePickerController.view.frame = videoViewContainer.bounds
    imagePickerController.allowsEditing = false
    imagePickerController.showsCameraControls = false
    imagePickerController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}

然后在NSMicrophoneUsageDescription文件中添加了对info.plist文件的描述:-)

希望它也能为你工作!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64061582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档