J'ai un appareil photo personnalisé dans mon application et il a bien fonctionné, mais après la nouvelle mise à jour, je reçois cette erreur:Prendre photo avec l'appareil photo personnalisé iOS 11.0 Swift 4. Erreur de mise à jour
'jpegPhotoDataRepresentation(forJPEGSampleBuffer:previewPhotoSampleBuffer:)' was deprecated in iOS 11.0: Use -[AVCapturePhoto fileDataRepresentation] instead.
Ceci est la ligne où je reçois cette erreur:
guard let imageData =
AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: photoSampleBuffer, previewPhotoSampleBuffer: previewPhotoSampleBuffer) else {
return
}
Ceci est ma fonction entière (si nécessaire):
//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
}
Mes guesti on est: Que devrais-je utiliser à la place pour le faire fonctionner?
Merci.
Définition photocomposition en haut comme une variable ne fonctionne pas pour moi, parce que par la seconde photo a été prise, l'application est écrasé en disant que je n'a pas été autorisé à utiliser les paramètres de photo. AVCapturePhotoSettings peut être défini avec "let" (not var) dans votre IBAction ou une autre fonction chaque fois que vous prenez une photo, alors cela fonctionnera très bien avec la prise de photo répétée. – VagueExplanation
Salut, @VagueExplanation, merci pour la réponse mais je n'ai pas bien compris ce qui est exactement causé par le crash (ça sonne comme chaque fois que j'instancie un AVCapturePhotoSetting?). Le code qui a fonctionné a fonctionné dans une vue 'Photo Booth' dans mon application, donc en gros, vous pouvez prendre une photo et passer à la vue suivante, vous êtes satisfait ou re-prendre si vous ne l'aimez pas. La photo est enregistrée dans l'album et l'application fonctionne sur iPad. Espérons que cela sera utile? Ou peut-être vous pouvez fournir plus de détails pour la discussion? –
Ah d'accord, alors peu importe. Cela dépend de la façon dont vous l'utilisez. – VagueExplanation