Что является альтернативой insertSublayer в swiftUI - PullRequest
1 голос
/ 20 октября 2019

Я создаю cameraApp как часть проекта, который я делаю, и я относительно новичок в swiftUI. Я использую AVFoundation, и мне нужно создать PreviewLayer. Однако я не могу создать previewLayer, потому что не знаю, как его отобразить. Я ознакомился с несколькими учебными пособиями и прочел документацию Apple.

Так выглядит мой код

struct ContentView: View {

    var captureSession = AVCaptureSession()
    var currentCamera: AVCaptureDevice?
    var photoOutput: AVCapturePhotoOutput?
    var cameraPreviewLayer: AVCaptureVideoPreviewLayer?


    func setupCaptureSession() {
        captureSession.canSetSessionPreset(.high)
    }

    mutating func setupDevice() {
        let videoDevice = AVCaptureDevice.default(.builtInWideAngleCamera,
        for: .video, position: .unspecified)

        currentCamera = videoDevice
    }

    func setupInputOutput() {
        do {
            let captureDeviceInput = try AVCaptureDeviceInput(device: currentCamera!)
            captureSession.addInput(captureDeviceInput)
            photoOutput!.supportedPhotoCodecTypes(for: .jpg)
        } catch {
            print("err")
        }
    }

    mutating func setupPreviewLayer() {
        cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        cameraPreviewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
        cameraPreviewLayer?.connection?.videoOrientation = 
        AVCaptureVideoOrientation.landscapeRight
        cameraPreviewLayer?.frame = self.view.frame
        self.view.insertSublayer(cameraPreviewLayer!, at: 0)
    }

    func startRunningCaptureSession() {
        captureSession.startRunning()
    }    


    var body: some View {
        Text("Hello World")
            .frame(maxWidth: .infinity, maxHeight: .infinity)

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...