我在阅读IOS摄像头时得到了这个荒谬的值';镜头位置
在运行iOS 12.1.2的iPhone XS MAX上使用Swift内置WideAngleCamera时使用此代码:我在阅读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
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”