시간에 따른 시청각 미디어 재생 / 생성 할 수 있게 해주는 프레임워크
캡쳐 작업을 관리하고 입력 장치(카메라)의 흐름을 관리하고 출력(사진 촬영)을 관리
→ 이걸 사용하려면 아래와 같은 것들을 정의해줘야 합니다
1️⃣ 어떤 장치의 입력(Input), 출력(Output)을 쓸 것인지
2️⃣ 입력(Input) 장치로 어떤 장치를 쓸 것인지
3️⃣ 출력(Output) 데이터로 어떤 데이터를 쓸 것인지
우리는 어떤 장치를 사용하여 캡쳐할 것인지를 정해야 합니다
우리는 AVCaptureDevice.default
를 통해서 어떤 장치를, 어떻게 사용할지를 정할 수 있습니다!
class func `default`(
_ deviceType: AVCaptureDevice.DeviceType,
for mediaType: AVMediaType?,
position: AVCaptureDevice.Position
) -> AVCaptureDevice?
deviceType: 어떤 장치를 사용할 것인지 ⇒ AVCaptureDevice.DeviceType
ex) 광각인지, 그냥 카메라인지, 듀얼인지 등등
mediaType: 어떤 방식으로 사용할 것인지 ⇒ AVMediaType
ex) audio, video 등등
AVMediaType | Apple Developer Documentation
position: 카메라 정면인지 후면인지
ex) .front, .back
예시 코드
var defaultCamera: AVCaptureDevice? {
// Find the built-in Dual Camera, if it exists.
if let device = AVCaptureDevice.default(.builtInDualCamera,
for: .video,
position: .back) {
return device
}
// Find the built-in Wide-Angle Camera, if it exists.
if let device = AVCaptureDevice.default(.builtInWideAngleCamera,
for: .video,
position: .back) {
return device
}
return nil
}