我正在创建一个具有实时扫描功能的应用程序。我添加了以下代码来呈现视图控制器,该视图控制器显示文档相机在单击按钮时看到的内容
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框架构建自定义相机和处理帧