MijickCamera/Sources/Internal/Manager/Helpers/Capture Device Input/CaptureDeviceInput+AVCaptureDeviceInput.swift

27 lines
968 B
Swift
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// CaptureDeviceInput+AVCaptureDeviceInput.swift of MijickCamera
//
// Created by Tomasz Kurylik. Sending from Kraków!
// - Mail: tomasz.kurylik@mijick.com
// - GitHub: https://github.com/FulcrumOne
// - Medium: https://medium.com/@mijick
//
// Copyright ©2024 Mijick. All rights reserved.
import AVKit
extension AVCaptureDeviceInput: CaptureDeviceInput {
static func get(mediaType: AVMediaType, position: AVCaptureDevice.Position?) -> Self? {
let device = { switch mediaType {
case .audio: AVCaptureDevice.default(for: .audio)
case .video where position == .front: AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front)
case .video where position == .back: AVCaptureDevice.default(for: .video)
default: fatalError()
}}()
guard let device, let deviceInput = try? Self(device: device) else { return nil }
return deviceInput
}
}