Я создаю собственную камеру и получаю нестабильные результаты. Когда я пытаюсь сделать снимок, я иногда не получаю ожидаемых обратных вызовов делегата. Например, вот мои методы делегата:
func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
print("will begin")
}
func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
print("will capture")
}
func photoOutput(_ output: AVCapturePhotoOutput, didCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
print("did capture")
}
func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
print("finished capture")
}
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
print("finish process")
}
У меня есть кнопка, которая запускает следующий метод:
func capture() {
print("capture called")
let settings = AVCapturePhotoSettings()
captureOutput.capturePhoto(with: settings, delegate: self)
}
Каждый раз, когда этот метод вызывается, я ожидаю следующего вывода в консоль:
capture called
will begin
will capture
did capture
finish process
finished capture
image set
Однако с вероятностью 50/50 я получаю только следующий результат:
capture called
did capture
Что здесь происходит?