Ios 成功扫描后停止AVF
我正在为iOS 10构建一个带有Swift 3(Xcode 8.1)的二维码扫描应用程序,我正在使用AVFoundation框架。有人知道如何在成功扫描后停止扫描,并在点击屏幕或其他东西后重新启动扫描仪吗 编辑: 下面是我的代码片段(没有关于返回值的代码):Ios 成功扫描后停止AVF,ios,swift,xcode,Ios,Swift,Xcode,我正在为iOS 10构建一个带有Swift 3(Xcode 8.1)的二维码扫描应用程序,我正在使用AVFoundation框架。有人知道如何在成功扫描后停止扫描,并在点击屏幕或其他东西后重新启动扫描仪吗 编辑: 下面是我的代码片段(没有关于返回值的代码): 在委托方法中尝试此操作 func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from
在委托方法中尝试此操作
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
if metadataObjects == nil || metadataObjects.count == 0 {
qrCodeFrameView?.frame = CGRect.zero
return
}
let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject
if supportedBarCodes.contains(metadataObj.type) {
let barCodeObject = videoPreviewLayer?.transformedMetadataObject(for: metadataObj)
qrCodeFrameView?.frame = barCodeObject!.bounds
print(metadataObj.stringValue)
// Stop capture session
videoPreviewLayer?.isHidden = true
qrCodeFrameView?.isHidden = true
self.captureSession?.stopRunning()
}
您能分享一些代码吗?@MuseerAnsari在问题中添加了代码。请检查我的答案,如果您有任何问题,请告诉我,谢谢!欢迎并祝您愉快:)
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
if metadataObjects == nil || metadataObjects.count == 0 {
qrCodeFrameView?.frame = CGRect.zero
return
}
let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject
if supportedBarCodes.contains(metadataObj.type) {
let barCodeObject = videoPreviewLayer?.transformedMetadataObject(for: metadataObj)
qrCodeFrameView?.frame = barCodeObject!.bounds
print(metadataObj.stringValue)
// Stop capture session
videoPreviewLayer?.isHidden = true
qrCodeFrameView?.isHidden = true
self.captureSession?.stopRunning()
}