Mam niestandardowy aparat w mojej aplikacji i to działało w porządku, ale po nowej aktualizacji otrzymuję ten błąd:Robienie zdjęć z aparatu na zlecenie iOS 11,0 Swift błędu 4. Aktualizacja
'jpegPhotoDataRepresentation(forJPEGSampleBuffer:previewPhotoSampleBuffer:)' was deprecated in iOS 11.0: Use -[AVCapturePhoto fileDataRepresentation] instead.
To jest linia gdzie ja dostaję ten błąd:
guard let imageData =
AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: photoSampleBuffer, previewPhotoSampleBuffer: previewPhotoSampleBuffer) else {
return
}
To jest cała moja funkcja (w razie potrzeby):
//Take pic function
func photoOutput(_ captureOutput: AVCapturePhotoOutput,
didFinishProcessingPhoto photoSampleBuffer: CMSampleBuffer?,
previewPhoto previewPhotoSampleBuffer: CMSampleBuffer?,
resolvedSettings: AVCaptureResolvedPhotoSettings,
bracketSettings: AVCaptureBracketedStillImageSettings?,
error: Error?) {
// Make sure we get some photo sample buffer
guard error == nil,
let photoSampleBuffer = photoSampleBuffer else {
print("Error capturing photo: \(String(describing: error))")
return
}
// Convert photo same buffer to a jpeg image data by using // AVCapturePhotoOutput
guard let imageData =
AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: photoSampleBuffer, previewPhotoSampleBuffer: previewPhotoSampleBuffer) else {
return
}
let dataProvider = CGDataProvider(data: imageData as CFData)
let cgImageRef = CGImage(jpegDataProviderSource: dataProvider!, decode: nil, shouldInterpolate: true, intent: CGColorRenderingIntent.absoluteColorimetric)
let image = UIImage(cgImage: cgImageRef!, scale: 1.0, orientation: UIImageOrientation.right)
self.tempImageView.image = image
}
Moi guesti on is: Co powinienem użyć zamiast tego, aby działało?
Dziękuję.
Definiowanie fotokompozycja się szczycie jako zmienna nie działa dla mnie, bo przez drugą zdjęcie zostało zrobione, aplikacja zawieszała mówiąc nie można było używać ustawień zdjęć. Ustawienia AVCapturePhotoSettings można zdefiniować za pomocą "let" (nie var) w IBAction lub innej funkcji za każdym razem, gdy robisz zdjęcie, wtedy będzie działać dobrze z wielokrotnym robieniem zdjęć. – VagueExplanation
Witam, @ VagueExplanation, dziękuję za odpowiedź, ale nie bardzo rozumiem, co dokładnie spowodowało awarię (brzmi jak za każdym razem, gdy tworzę instancję AVCapturePhotoSetting?). Wysłany kod działał w widoku "Photo Booth" w mojej aplikacji, więc w zasadzie możesz zrobić zdjęcie i przejść do następnego widoku, w którym jesteś zadowolony, lub ponownie go zabrać, jeśli ci się nie podoba. Zdjęcie zostanie zapisane w albumie, a aplikacja będzie działać na iPadzie. Mam nadzieję, że będzie to pomocne? A może możesz podać więcej szczegółów do dyskusji? –
Ah w porządku, to nieważne. To zależy od tego, jak go używasz. – VagueExplanation