Skip to content

Commit

Permalink
Change camera device types for handling device change on macro images (
Browse files Browse the repository at this point in the history
…#66)

Co-authored-by: Krister Sigvaldsen Moen <[email protected]>
  • Loading branch information
KristerMoen and Krister Sigvaldsen Moen authored Jan 13, 2025
1 parent b149c2a commit 5eca6a2
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions Sources/PhotoCaptureViewController/CaptureManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,16 @@ private extension CaptureManager {
}
cameraDevice.unlockForConfiguration()
}

// Set zoomFactor to get default camera functionality
do {
try cameraDevice.lockForConfiguration()
} catch let error1 as NSError {
error = error1
self.delegate?.captureManager(self, didFailWithError: error1)
}
cameraDevice.videoZoomFactor = 2.0
cameraDevice.unlockForConfiguration()
}

self.session.startRunning()
Expand All @@ -286,16 +296,21 @@ private extension CaptureManager {
}

func cameraDeviceWithPosition(_ position: AVCaptureDevice.Position) -> AVCaptureDevice? {
let deviceTypes: [AVCaptureDevice.DeviceType]

if #available(iOS 11.2, *) {
deviceTypes = [.builtInTrueDepthCamera, .builtInDualCamera, .builtInWideAngleCamera]
} else {
deviceTypes = [.builtInWideAngleCamera]
}

let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: .video, position: .unspecified)
let availableCameraDevices = discoverySession.devices
let discoverySession = AVCaptureDevice.DiscoverySession(
deviceTypes: [
.builtInTripleCamera,
.builtInDualCamera,
.builtInTrueDepthCamera,
.builtInDualWideCamera,
.builtInWideAngleCamera
],
mediaType: .video,
position: .back
).devices

let availableCameraDevices = discoverySession
.filter { $0.isConnected && !$0.isSuspended }

guard availableCameraDevices.isEmpty == false else {
print("Error no camera devices found")
Expand Down

0 comments on commit 5eca6a2

Please sign in to comment.