Член экземпляра fileDataRepresentation не может использоваться с типом AVCapturePhoto; вы хотели вместо этого использовать значение этого типа?

Swift выдает ошибку, что представление fileDataRepresentation не может быть создано для AVCapturePhoto. Печать «фото» возвращает метаданные фотографии. Как я могу преобразовать изображение в байты файла и, в конечном итоге, в 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()

1 ответ

AVCapturePhoto.fileDataRepresentation - это instance метод, а НЕ class метод.

Вы должны вызвать его на экземпляре AVCapturePhoto как это -

      func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Swift.Error?) {
    let imageData = photo.fileDataRepresentation()
}
Другие вопросы по тегам