import SwiftUI import AVFoundation // MARK: - 相机预览视图 struct CameraPreviewView: UIViewRepresentable { let session: AVCaptureSession @Binding var previewLayer: AVCaptureVideoPreviewLayer? func makeUIView(context: Context) -> UIView { let view = UIView() let previewLayer = AVCaptureVideoPreviewLayer(session: session) previewLayer.frame = view.bounds previewLayer.videoGravity = .resizeAspectFill view.layer.addSublayer(previewLayer) DispatchQueue.main.async { self.previewLayer = previewLayer } return view } func updateUIView(_ uiView: UIView, context: Context) { if let previewLayer = uiView.layer.sublayers?.first as? AVCaptureVideoPreviewLayer { previewLayer.frame = uiView.bounds DispatchQueue.main.async { self.previewLayer = previewLayer } } } }