iOS/Swift 어플 따라하기

[Swift] Camera App 1(captureSession설정)

Chafle 2022. 4. 8. 11:42
반응형

 

-CaptureSession

-AVCaptureDeviceInput

-AVCapturePhotoOutput

-Queue(비디로 관련 프로세싱은 해당하는 큐에서 작동할 수 있도록)

-AVCaptureDevice(디바이스에서카메라를 가져올 때, discoverysession)

 

기본 Setting

 let captureSession = AVCaptureSession()

 var videoDeviceInput: AVCaptureDeviceInput!

//var인 이유. 디바이스 찾아서 넣어줄 건데, 앞뒤카메라를 토글시킬 수 있으니까 var로선언합니다.

let photoOutput = AVCapturePhotoOutput()

let sessionQueue = DispatchQueue(label: "session Queue")

let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera, .builtInWideAngleCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)

 

 

ViewdidLoad에서 sessionqueue설정

sessionQueue.async {

            self.setupSession()

//setupSession()은 다음피드에 자세하게 다룹니다.

            self.startSession()

//startSession()은 다음피드에 자세하게 다룹니다.

       }

        setupUI()

}

 

 

SetupUI

 

func setupUI() {

        photoLibraryButton.layer.cornerRadius = 10

        photoLibraryButton.layer.masksToBounds = true//잘린 녀석은 마스킹

        photoLibraryButton.layer.borderColor =  colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)

        photoLibraryButton.layer.borderWidth = 1

photoLibraryButton

 

        captureButton.layer.cornerRadius = captureButton.bounds.height/2   //동그랗게 깎겠다

        //bound는 (0.0).너비(width,height)

        captureButton.layer.masksToBounds = true

        

        blurBGView.layer.cornerRadius = captureButton.bounds.height/2   //동그랗게 깎겠다

        //bound는 (0.0).너비(width,height)

        blurBGView  .layer.masksToBounds = true

    }

    

 

previewView.session = captureSession

를 추가로 viewDidLoad에 설정해줍니다.

 

previewView.session은 사진으로 첨부하겠으나, apple공식 document에 AVcam에 대한 공식 소스코드입니다.

 

반응형

 

반응형