我使用以下函数获取metadataObject
并将其发布到服务器。
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!)
现在我想在QR扫描仪上添加一个计时器(计数器),这样当用户开始扫描QR码时,计时器开始倒计时(从3开始),当它到达0
时其余的代码(将元数据发布到服务器)运行。
我确实将self.setTimer()
放在上面的函数中,但是captureSession.stop()
会立即调用,而Scanner不会等待Timer完成计数。
我该如何处理?
答案 0 :(得分:0)
我找到了答案。
我使用一个标志,以便captureOutput
函数被调用一次(这样self.setTimer()
不会被多次调用)。
然后使用
DispatchQueue.main.asyncAfter(deadline: .now()+3, execute: {
停止captureSession
,然后在计时器完成倒计时3秒后执行其余代码(将元数据发布到服务器)。
现在扫描程序运行,如果检测到QR-Code
,计时器开始运行,其余代码在3秒后运行。