VNDocumentCameraViewController如何在第一次扫描后禁用自动快门?



我正在创建一个具有实时扫描功能的应用程序。我添加了以下代码来呈现视图控制器,该视图控制器显示文档相机在单击按钮时看到的内容

let documentCameraViewController = VNDocumentCameraViewController() 
documentCameraViewController.delegate = self
present(documentCameraViewController, animated: true)

它正在工作,但唯一的问题是自动快门默认设置为ON,它一直在扫描,直到我点击保存。我可以手动将自动快门设置为"关闭",但我不想这样做。我想让第一次扫描时的自动快门打开,然后它就不会再自动拍摄照片了(自动快门会切换到关闭状态)。我能做到吗?如果没有,我如何将默认的自动快门设置为关闭?

谢谢!

你不能。此外,委托将接收所有扫描一次。

最接近的替代方法是忽略VNDocumentCameraViewController并在documentCameraViewController: didFinishWith中进行第一次扫描,如下所示:

func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
documentCameraViewController?.dismiss(animated: true, completion: nil)
documentCameraViewController = nil
// ...
let firstImage = scan.imageOfPage(at: 0)

然而,VNDocumentCameraViewController的存在是为了提供基本功能。因此,如果您需要更精细的调整,更常见的是使用Vision框架构建自定义相机和处理帧

最新更新