微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实例成员“fileDataRepresentation”不能用于“AVCapturePhoto”类型;你的意思是要使用这种类型的值吗?

如何解决实例成员“fileDataRepresentation”不能用于“AVCapturePhoto”类型;你的意思是要使用这种类型的值吗?

Swift 给出无法为 AVCapturePhoto 创建 fileDataRepresentation 的错误。打印“照片”,返回照片的元数据。如何将图像转换为文件字节并最终转换为 base64?到目前为止,我尝试了很多方法,但都依赖于获取文件字节。感谢您提前回复

   @IBAction func takePhotoButtonpressed(_ sender: Any) {
          let settings = AVCapturePhotoSettings()
          let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!
          let previewFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewPixelType,kCVPixelBufferWidthKey as String: 160,kCVPixelBufferHeightKey as String: 160]
          settings.previewPhotoFormat = previewFormat
          settings.isHighResolutionPhotoEnabled = false
          sessionOutput.capturePhoto(with: settings,delegate: self)
        
    }

    func photoOutput(_ output: AVCapturePhotoOutput,didFinishProcessingPhoto photo: AVCapturePhoto,error: Swift.Error?) {
        let imageData = AVCapturePhoto.fileDataRepresentation()

解决方法

AVCapturePhoto.fileDataRepresentation 是一个 instance 方法,而不是一个 class 方法。

你必须像这样在 AVCapturePhoto 的实例上调用它 -

func photoOutput(_ output: AVCapturePhotoOutput,didFinishProcessingPhoto photo: AVCapturePhoto,error: Swift.Error?) {
    let imageData = photo.fileDataRepresentation()
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?