Вывод видео с камеры на 2 просмотра

Я пытаюсь вывести канал с камеры на 2 разных вида. Я хочу, чтобы один канал покрывал рамку устройства, а другой - сверху, чтобы он был меньше.

Я попытался использовать CAReplicatorLayer, как показано в AVCaptureSession с несколькими предварительными просмотрами, но я не могу достичь желаемых результатов.

У меня есть UIViewController Ext, где у меня есть мой код сессии:

    func allConfig(withCamView cams:UIView) {

    let captureDevice = AVCaptureDeviceDiscoverySession(deviceTypes: [.builtInDualCamera, .builtInWideAngleCamera], mediaType: AVMediaTypeVideo, position: .unspecified)

    for device in (captureDevice?.devices)! {
        if device.position == .front{
            do {
                let input = try AVCaptureDeviceInput(device: device)
                if session.canAddInput(input) {
                    session.addInput(input)
                }
                if session.canAddOutput(previewOutput) {
                    session.addOutput(previewOutput)
                }
                previewLayer = AVCaptureVideoPreviewLayer(session: session)
                previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
                previewLayer.connection.videoOrientation = .portrait
                cams.layer.addSublayer(previewLayer)
                previewLayer.position = CGPoint(x: cams.frame.width/2, y: cams.frame.height/2)
                previewLayer.bounds = cams.frame
                session.startRunning()
            } catch let avError {
                print(avError)
            }
        }
    }

}

Код репликации:

var replicationLayers = 2


func tt() {
    let replayer = CAReplicatorLayer()
    replayer.instanceCount = replicationLayers
    replayer.instanceTransform = CATransform3DMakeTranslation(100.0, 100.0, 100.0)
    replayer.addSublayer(previewLayer)
    self.blurview.layer.addSublayer(replayer)
}


override func allConfig(withCamView cams: UIView) {
    super.allConfig(withCamView: circCam)
    tt()
}

Вот что я получаю:

введите описание изображения здесь

Как я упоминал выше, я хочу канал в фоновом режиме и канал поверх него в пользовательском представлении. Как я могу этого добиться. Пожалуйста, ведите меня.

Ценю твою помощь.

0 ответов

Другие вопросы по тегам