Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在阅读IOS摄像头时得到了这个荒谬的值';镜头位置_Ios_Swift_Camera - Fatal编程技术网

我在阅读IOS摄像头时得到了这个荒谬的值';镜头位置

我在阅读IOS摄像头时得到了这个荒谬的值';镜头位置,ios,swift,camera,Ios,Swift,Camera,在运行iOS 12.1.2的iPhone XS MAX上使用Swift内置WideAngleCamera时使用此代码: let lensPos: Float = AVCaptureDevice.currentLensPosition; lockCameraForSettings(); self.inputDevice?.setFocusModeLocked(lensPosition: LensPos, completionHandler: { (time) -> Void in}) un

在运行iOS 12.1.2的iPhone XS MAX上使用Swift内置WideAngleCamera时使用此代码:

let lensPos: Float  = AVCaptureDevice.currentLensPosition;
lockCameraForSettings();
self.inputDevice?.setFocusModeLocked(lensPosition: LensPos, completionHandler: { (time) -> Void in})
unlockCameraForShooting();
导致碰撞:

[AVCaptureDevice SetFocusModelLockedWithLensPosition:completionHandler:]传递的lensPosition-3402834663852885981170418348484516925440.000000超出范围[0,1]'

相机正在运行,并在屏幕预览上清晰地聚焦。它如何可能处于这种配置中


在0-1之间插入一个常量值是有效的,至少它不会引发错误。

我相信您的意思是使用
.lensPosition
而不是
.currentLensPosition
,后者是表示镜头位置的特殊常量。只有在引用类型为
AVCaptureDevice
的实例时,才能访问
.lensPosition

    var captureDevice: AVCaptureDevice?

    // Plus models and X's
    if let device = AVCaptureDevice.default(.builtInDualCamera,
                                            for: .video, position: .back) {
        captureDevice = device
     // Single Lens devices.
    } else if let device = AVCaptureDevice.default(.builtInWideAngleCamera,
                                                   for: .video, position: .back) {
        captureDevice = device
    } else {
        // No camera was found, is it broke?
        print("Missing expected back camera device.")
    }

    if let device = captureDevice {
        // We have a device, do something with it.
        print(device.lensPosition)
    }

欢迎新用户,您有一些问题与类型不正确、与浮点、整数等混淆有关。苹果的文档称AVCaptureDevice.currentLensPosition是介于0和1之间的浮点。如果我只做上面显示的第一行,然后调试打印lensPos,我得到:“lens在3.4028235e+38”