Я пытаюсь сделать простой видоискатель видео, следуя документации AVFoundation. Приложение закрывается при каждом запуске. Как мне решить эту конкретную ошибку?
Thread 1: EXC_BREAKPOINT (code=1, subcode=0x102d3c320)
ViewController.swift:
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var toggleCameraButton: NSLayoutConstraint!
@IBOutlet weak var previewView: PreviewView!
var captureSession: AVCaptureSession?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
var wideCamera = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)
var telephotoCamera = AVCaptureDevice.default(.builtInTelephotoCamera, for: .video, position: .back)
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .black
captureSession?.beginConfiguration()
guard
let wideCameraDeviceInput = try? AVCaptureDeviceInput(device: wideCamera!)
else { return }
guard
let telephotoCameraDeviceInput = try? AVCaptureDeviceInput(device: wideCamera!)
else { return }
captureSession?.addInput(wideCameraDeviceInput)
captureSession?.addInput(telephotoCameraDeviceInput)
let videoOutput = AVCaptureVideoDataOutput()
guard
(captureSession?.canAddOutput(videoOutput))! //Thread 1: EXC_BREAKPOINT (code=1, subcode=0x102d3c320)
else { return }
captureSession?.sessionPreset = .high
captureSession?.addOutput(videoOutput)
captureSession?.commitConfiguration()
self.previewView.videoPreviewLayer.session = self.captureSession
captureSession?.startRunning()
}
@IBAction func SwitchCameras(_ sender: Any) {
}
func switchToTelephoto() {
}
func switchToWideAngle() {
}
}
class PreviewView: UIView {
override class var layerClass: AnyClass {
return AVCaptureVideoPreviewLayer.self
}
///Convenience wrapper to get layer as its statically known type.
var videoPreviewLayer: AVCaptureVideoPreviewLayer {
return layer as! AVCaptureVideoPreviewLayer
}
}
отображается только на консоли
(lldb)