-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에 대한 공식 소스코드입니다.
'iOS > Swift 어플 따라하기' 카테고리의 다른 글
[Swift] Camera App 3(내부,외부 카메라 toggle button) (6) | 2022.04.14 |
---|---|
[Swift] Camera App 2(captureSession 구성) (0) | 2022.04.12 |
[Swift] info를 이용한 사용자 권한 받기 (0) | 2022.04.07 |
[Swift] * 검색 히스토리 표시(searchHistory)/searchTerm 최신순 sorting (0) | 2022.04.06 |
[Swift] Firebase 서버(RealtimeDatabase)에 저장된 데이터 불러오기 (0) | 2022.04.06 |