반응형
AVCaptureDevice 사용 시 일반적인 구글링이나 GPT에서 제공하는 샘플에서는
builtInWideAngleCamera 부분에 대해서만 제공되는 경우가 많은데 이렇게 적용할 경우,
QR 코드나 가까운 거리에서 물체를 잡으려고 할 떄 캡쳐 이미지가 흐릿하거나 초점이 맞지 않는 현상이 발생한다.
이런 경우, AVCaptureDevice의 DiscoverySession에서 카메라 모듈을 직접 설정해 주어야
사물 가까이 접근했을 경우, 상황에 맞는 카메라로 변경된다.
아래는 다양한 아이폰 디바이스에서 제공되는 카메라 종류를 추가한 코드이다.
func setupDevice() {
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [
AVCaptureDevice.DeviceType.builtInTripleCamera,
AVCaptureDevice.DeviceType.builtInDualCamera,
AVCaptureDevice.DeviceType.builtInWideAngleCamera], mediaType: AVMediaType.video, position: AVCaptureDevice.Position.unspecified)
if let device = deviceDiscoverySession.devices.first {
switch device.position {
case AVCaptureDevice.Position.front:
self.frontCamera = device
case AVCaptureDevice.Position.back:
self.backCamera = device
default:
break
}
}
self.currentCamera = self.backCamera
}
반응형
'Develop > Swift' 카테고리의 다른 글
스토리보드, XIB Inspectable에 enum 연동하는 방법 (0) | 2023.01.29 |
---|---|
M1 ARM-64 Simulator 지원하지 않는 프레임워크 수정하는 방법 (0) | 2023.01.07 |
String에 HTML 링크 적용 (0) | 2023.01.07 |
KingFisher에서 SVG 이미지 다운로드하는 방법 (0) | 2022.11.13 |
SwiftUI 상에서 HTML 출력과 Link, CSS 적용하는 방법 (0) | 2022.11.13 |