Ich erstelle gerade eine einfache Anwendung, die AVFoundation verwendet, um Video in eine UIImageView
zu streamen.Aufnehmen von Standbildern mit AVFoundation
Um dies zu erreichen, habe ich eine Instanz von AVCaptureSession()
und eine AVCaptureSessionPreset()
:
let input = try AVCaptureDeviceInput(device: device)
print(input)
if (captureSession.canAddInput(input)) {
captureSession.addInput(input)
if (captureSession.canAddOutput(sessionOutput)) {
captureSession.addOutput(sessionOutput)
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
previewLayer.connection.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer)
captureSession.startRunning()
cameraView Verweise auf die
UIImageView
Steckdose.
Ich möchte jetzt eine Möglichkeit zum Erfassen eines Standbildes aus der AVCaptureSession implementieren.
Korrigieren Sie mich, wenn es einen effizienteren Weg gibt, aber ich plane, eine zusätzliche UIImageView
zu haben, um das Standbild zu halten, das auf die UIImageView
gelegt wird, die das Video hält?
ich eine Schaltfläche mit der Aktion erstellt habe:
@IBAction func takePhoto(_sender: Any) {
// functionality to obtain still image
}
Mein Problem ist, ich bin nicht sicher, wie eigentlich ein Standbild von der Aufnahmesitzung erhalten und die neuen UIImageView
damit füllen.
Nach an Informationen suchen/Fragen auf Stack geschrieben, ist die Mehrheit der Lösungen zu verwenden:
unsichercaptureStillImageAsynchronouslyFromConnection
Ich bin, wenn es 3.0 nur Swift ist aber xCode ist diese Funktion nicht zu erkennen.
Könnte jemand bitte mich beraten, wie man tatsächlich das Ergebnis des Erlangens und der Anzeige eines Standbildes auf Tastendruck erreicht.
Here ist ein Link zu meinem vollständigen Code für ein besseres Verständnis meines Programms.
Vielen Dank im Voraus, dass Sie sich die Zeit genommen haben, meine Frage zu lesen, und bitte sagen Sie mir, falls ich einige relevante Daten verpasst habe.
[Obi-Wan Kenobi Stimme] zu finden! In Swift 3 ist es ['captureStillImageAsynchronously (from: completionHandler:)'] (https://developer.apple.com/reference/avfoundation/avcapturestillimeimoutput/1387374-capturestilleimageasynchron). – matt
Sie können diese verweisen http://stackoverflow.com/questions/28756363/how-to-capture-picture-with-avcapturesession-in-swift –