Swift 无法使用AVCaptureDevice发现摄像头

Swift 无法使用AVCaptureDevice发现摄像头,swift,avcapturedevice,Swift,Avcapturedevice,这是我的密码: if AVCaptureDevice.authorizationStatus(for: AVMediaType.video) == .authorized { let deviceDiscoverySession = AVCaptureDevice.DiscoverySession( deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, positi

这是我的密码:

if AVCaptureDevice.authorizationStatus(for: AVMediaType.video) == .authorized {
    let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(
        deviceTypes: [.builtInDualCamera],
        mediaType: AVMediaType.video,
        position: .back)
    let captureDevice = deviceDiscoverySession.devices.first
}
结果是空数组(deviceDiscoverySession.devices)。 我在实际设备(iPhone 6+iOS 12.1.2)上运行。

您可以试试

// 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
}


使用.builtInWideAngleCamera可以解决此问题。但我想知道这是否适用于所有iOS设备型号?我使用过它,而且它不会突破旧x代和新x代,顺便说一句,您可以在该阵列中指定所有可能的值感谢您的帮助,非常感谢。
if let newCamera = cameraWithPosition(position: .back) {
   //
}