Rory Rozzer Hodgson
Rory Rozzer Hodgson

Reputation: 69

Adding a view on top of a AVCapturesession

I am trying to add a button on top of my AVCapturesession preview layer. this button is to capture images (fire the capture function)..however i can not seem to set one up.

func configureCaptureSession() {


    captureSession.sessionPreset = AVCaptureSession.Preset.photo

    let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, position: .unspecified)

    for device in deviceDiscoverySession.devices {
        if device.position == .back {
            rearCam = device
        } else if device.position == .front {
            frontCam = device
        }
    }
currentDevice = rearCam
    guard let captureDeviceInput = try? AVCaptureDeviceInput(device: currentDevice) else {
        return
    }
   // wheelOverlay.image = UIImage(named: "wheel")
  //  wheelOverlayLayer.contents = wheelOverlay
    stillPhotoOutput = AVCapturePhotoOutput()

    captureSession.addInput(captureDeviceInput)

    captureSession.addOutput(stillPhotoOutput)


    cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)

    cameraPreviewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
    cameraPreviewLayer?.frame = view.layer.frame
    print("Capture session setup")
   // view.layer.addSublayer(wheelOverlayLayer)
   // view.layer.insertSublayer(wheelOverlayLayer, above: cameraPreviewLayer)
    captureSession.startRunning()


}

where abouts do i need to add the subview?

Upvotes: 2

Views: 1013

Answers (1)

Shehata Gamal
Shehata Gamal

Reputation: 100533

You need to add it to the view after you add the cameraLayer like this

view.layer.addSublayer(cameraPreviewLayer) 
let bt = UIButton(type:.system) 
bt.setTitle("Record",for:.normal)
bt.frame = /////
view.addSubview(bt)

Upvotes: 4

Related Questions