[Swift] Camera App 1(captureSession설정)
-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
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에 대한 공식 소스코드입니다.