This snapshot establishes the camera-to-result recognition flow and related tests while checking in the project skill/docs assets required for the configured local tooling.
29 lines
807 B
Swift
29 lines
807 B
Swift
import AVFoundation
|
|
import SwiftUI
|
|
|
|
struct CameraPreviewView: UIViewRepresentable {
|
|
let session: AVCaptureSession
|
|
|
|
func makeUIView(context: Context) -> PreviewView {
|
|
let view = PreviewView()
|
|
view.previewLayer.session = session
|
|
view.previewLayer.videoGravity = .resizeAspectFill
|
|
return view
|
|
}
|
|
|
|
func updateUIView(_ uiView: PreviewView, context: Context) {
|
|
uiView.previewLayer.session = session
|
|
}
|
|
}
|
|
|
|
final class PreviewView: UIView {
|
|
override class var layerClass: AnyClass { AVCaptureVideoPreviewLayer.self }
|
|
|
|
var previewLayer: AVCaptureVideoPreviewLayer {
|
|
guard let layer = layer as? AVCaptureVideoPreviewLayer else {
|
|
fatalError("PreviewView requires AVCaptureVideoPreviewLayer.")
|
|
}
|
|
return layer
|
|
}
|
|
}
|