pracuję na wykorzystaniu własnego aparatu, a ja niedawno uaktualniony do Xcode 8 Beta wraz z Swift 3. I pierwotnie miał to:Jak korzystać AVCapturePhotoOutput
var stillImageOutput: AVCaptureStillImageOutput?
Jednak teraz jestem coraz ostrzeżenie :
'AVCaptureStillImageOutput' was deprecated in iOS 10.0: Use AVCapturePhotoOutput instead
Ponieważ jest to dość nowe, nie widziałem wiele informacji na ten temat. Tu jest mój bieżący kod:
var captureSession: AVCaptureSession?
var stillImageOutput: AVCaptureStillImageOutput?
var previewLayer: AVCaptureVideoPreviewLayer?
func clickPicture() {
if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo) {
videoConnection.videoOrientation = .portrait
stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (sampleBuffer, error) -> Void in
if sampleBuffer != nil {
let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
let dataProvider = CGDataProvider(data: imageData!)
let cgImageRef = CGImage(jpegDataProviderSource: dataProvider!, decode: nil, shouldInterpolate: true, intent: .defaultIntent)
let image = UIImage(cgImage: cgImageRef!, scale: 1, orientation: .right)
}
})
}
}
Próbowałem spojrzeć na AVCapturePhotoCaptureDelegate
, ale nie jestem pewien, jak go używać. Czy ktoś wie, jak tego użyć? Dzięki.
Musisz zobaczyć sesję WWDC 2016 511 wideo .. –
Ohk! Więc obejrzę wideo i opublikuję odpowiedź, jeśli będę mógł. Dzięki! – penatheboss
Spojrzenie na [docs] (http://developer.apple.com/reference/AVFoundation/AVCapturePhotoOutput) również może pomóc. – rickster