Невозможно установить границы для AVCaptureVideoPreviewLayer - PullRequest
0 голосов
/ 10 мая 2018

Мне трудно изменить границы AVCaptureVideoPreviewLayer.Все, что я делаю, всегда заканчивается маленьким размером, как показано ниже:

enter image description here

Вот мой код:

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        self.imageLayer.bounds = CGRect(x: 0, y: 0, width: 375, height: 100)
    }

    private func startLiveVideo() {

        session.sessionPreset = AVCaptureSession.Preset.photo
        let captureDevice = AVCaptureDevice.default(for: AVMediaType.video)

        let deviceInput = try! AVCaptureDeviceInput(device: captureDevice!)
        let deviceOutput = AVCaptureVideoDataOutput()
        deviceOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: Int(kCVPixelFormatType_32BGRA)]
        deviceOutput.setSampleBufferDelegate(self, queue: DispatchQueue.global(qos: DispatchQoS.QoSClass.default))
        session.addInput(deviceInput)
        session.addOutput(deviceOutput)

        self.imageLayer = AVCaptureVideoPreviewLayer(session: session)
        imageLayer.frame = CGRect(x: 0, y: 0, width: 375, height: 100)
        self.imageView.layer.addSublayer(self.imageLayer)

        session.startRunning()
    }

РЕШЕНИЕ:

self.imageLayer.videoGravity = .resizeAspectFill

1 Ответ

0 голосов
/ 10 мая 2018

Сначала вы можете назначить ширину и высоту imageView из раскадровки или yourViewController 500 x 500 или любого другого размера.

imageLayer.frame = CGRect(x: 0, y: 0, width: self.imageView.frame.width, height: self.imageView.frame.height)

self.imageView.layer.addSublayer(self.imageLayer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...