david72
david72

Reputation: 7297

Unable to discover camera using AVCaptureDevice

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

Answers (1)

Shehata Gamal
Shehata Gamal

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

Related Questions