Я пытаюсь использовать это: https://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.htmlAVCamera фото захвата компании Apple
Я пытаюсь получить доступ к photoData после того, как снимок был сделан таким образом, я могу загрузить его на сервер.
Когда кнопка захвата нажата, тонна кода установки получает запуск, а затем это называется в самом низу:
self.photoOutput.capturePhoto(with: photoSettings, delegate: photoCaptureDelegate)
photoCaptureDelegate является другим файлом, который поставляется вместе с проектом, так и внутри что это:
func capture(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingPhotoSampleBuffer photoSampleBuffer: CMSampleBuffer?, previewPhotoSampleBuffer: CMSampleBuffer?, resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Error?) {
if let photoSampleBuffer = photoSampleBuffer {
photoData = AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: photoSampleBuffer, previewPhotoSampleBuffer: previewPhotoSampleBuffer)
print("Got photo Data...this is where I want to capture/use the data")
}
else {
print("Error capturing photo: \(error)")
return
}
}
Так что в этом photoCaptureDelegate «photoData» становится установлен в формате JPEG на то, что картина принимаются. Я хочу, чтобы затем использовать эти данные в контроллере представления, кнопка capturePhoto, чтобы я мог загрузить ее на сервер, используя функции, которые я определил в главном контроллере.
Как захватить данные фотографии и использовать их обратно в другом диспетчере представлений, который вызвал self.photoOutput.capturePhoto?
Альтернативно .. Было бы плохой практикой просто запустить отправку на серверный код непосредственно из файла didFinishProcessingPhoto? Я мог бы сделать так, чтобы у меня был доступ к переменным, которые мне нужны изнутри, но это кажется неправильным.
Спасибо, что нашли время, чтобы скачать проект и помочь мне здесь. Ценить это :) – user6820041