Ich habe schwierige Zeiten, für etwas, das ich denke, sollte einfach sein. Ich möchte nur den Blitz anzünden, wenn ich ein Bild in meiner iOS App mache. Und alles, was ich versucht habe, scheiterte oder arbeitet nur 20 Prozent.Kann AVCaptureDevice nicht mit einem Blitz verwenden
Hier ist der Code gebrannt, um den Blitz zu beleuchten:
// Here we have: captureDevice.hasFlash && captureDevice.isFlashModeSupported(.On)
do {try captureDevice.lockForConfiguration()
captureDevice.flashMode = .On
captureDevice.unlockForConfiguration()
} catch let error as NSError {
print("captureDevice.lockForConfiguration FAILED")
print(error.code)
}
ich mehrere Varianten des Codes versucht haben, durch die zwei Linien innerhalb des try-Blocks bis zum Ende zu bewegen, oder durch Aufruf der Funktion enthalten, dieser Code von verschiedenen Punkten. Aber in allen Fällen zum Zeitpunkt der diese ausgeführt wird:
stillImageOutput.captureStillImageAsynchronouslyFromConnection(videoConnection) {
(imageDataSampleBuffer, error) -> Void in
bekomme ich folgende Fehlermeldung:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSUnderlyingError=0x13f079340 {Error Domain=NSOSStatusErrorDomain Code=-16800 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-16800), NSLocalizedDescription=The operation could not be completed}
Wenn ich dann ersetzen Sie die Zeile:
captureDevice.flashMode = .On
von:
captureDevice.torchMode = .On
Ich bekomme etwas mehr oder weniger funktioniert (leider eher weniger), ohne Fehler, aber das die Fackel verwendet, so dass ich Timing-Probleme:
Auch ist es nicht klar, ob ich diese Linie zu einem bestimmten Zeitpunkt verwenden, muß in meinem Code:
captureSession.commitConfiguration()