为什么AVCaptureDevice.default在swiftui中返回nil?



我一直在尝试创建自己的内置相机,但是当我尝试设置设备时它崩溃了。

func setUp() {
do {

self.session.beginConfiguration()

let device = AVCaptureDevice.default(.builtInDualCamera, for: .video, position: .front)

let input = try AVCaptureDeviceInput(device: device!)

if self.session.canAddInput(input) {
self.session.addInput(input)
}

if self.session.canAddOutput(self.output) {
self.session.addOutput(self.output)
}

self.session.commitConfiguration()
} catch {
print(error.localizedDescription)
}
}

当我执行程序时,它因输入而崩溃,因为我尝试强制解开设备零值。 我已经设置了所需的授权,以便应用程序可以使用相机,并且它仍然以 nil 值结束。

如果有人知道如何解决问题,将不胜感激

你要求一个builtInDualCamera,即支持:

  • 当变焦系数、光线水平和对焦位置允许时,自动从一台摄像机切换到另一台摄像机。
  • 通过融合来自两个摄像头的图像,实现更高质量的静态变焦。
  • 通过测量广角相机和长焦相机之间匹配特征的差异来提供深度数据。
  • 从单个照片
  • 捕获请求从组成设备(广角和长焦相机)传送照片。

而且你要求它放在手机的前面。我不知道有哪部iPhone的正面有这样的摄像头(尤其是最后一个)。您可能打算请求position: .back,如示例代码所示。但请记住,并非所有手机的背面都有双摄像头。

您可能希望使用default(for:)来请求默认的"视频"相机,而不是要求特定类型的相机。或者,您可以使用AVCaptureDevice.DiscoverSession根据特定特征查找相机。

相关内容

  • 没有找到相关文章

最新更新