Reputation: 7297
Here is my code:
if AVCaptureDevice.authorizationStatus(for: AVMediaType.video) == .authorized {
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(
deviceTypes: [.builtInDualCamera],
mediaType: AVMediaType.video,
position: .back)
let captureDevice = deviceDiscoverySession.devices.first
}
The result is empty array (deviceDiscoverySession.devices). I am running on actual device (iPhone 6+ iOS 12.1.2).
Upvotes: 1
Views: 1310
Reputation: 100503
You can try
// Find a camera with the specified AVCaptureDevicePosition, returning nil if one is not found
func cameraWithPosition(position: AVCaptureDevice.Position) -> AVCaptureDevice? {
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .unspecified)
for device in discoverySession.devices {
if device.position == position {
return device
}
}
return nil
}
if let newCamera = cameraWithPosition(position: .back) {
//
}
Upvotes: 4