Я пытаюсь отсканировать QR-код и затем представить результаты в UIWebView.Я не могу сделать два процесса (отмечено ниже);отображение и QR-код.
Как я могу это сделать
import UIKit
import SceneKit
import ARKit
import AVFoundation
import SafariServices
class ViewController: UIViewController, ARSCNViewDelegate, AVCaptureMetadataOutputObjectsDelegate {
@IBOutlet weak var backview: UIView!
@IBOutlet weak var sceneView: ARSCNView!
var planeGeometry:SCNPlane!
var anchors = [ARAnchor]()
var sceneLight:SCNLight!
var video = AVCaptureVideoPreviewLayer()
override func viewDidLoad() {
super.viewDidLoad()
let sessiont = AVCaptureSession()
let captureDevice = AVCaptureDevice.default(for: AVMediaType.video)
do {
let input = try AVCaptureDeviceInput(device: captureDevice!)
sessiont.addInput(input)
} catch {
print("error")
}
let output = AVCaptureMetadataOutput()
sessiont.addOutput(output)
output.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
output.metadataObjectTypes = [AVMetadataObject.ObjectType.qr]
video = AVCaptureVideoPreviewLayer(session: sessiont)
video.frame = view.layer.frame
backview.layer.addSublayer(video)
backview.isHidden = true
sessiont.startRunning() //HERE!!!
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = .horizontal
configuration.isLightEstimationEnabled = true
// Run the view's session
sceneView.session.run(configuration) //HERE!!
}
func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
if metadataObjects != nil && metadataObjects.count != 0 {
if let object = metadataObjects[0] as? AVMetadataMachineReadableCodeObject {
if object.type == AVMetadataObject.ObjectType.qr {
//Pass to AR
}
}
}
}
}
Я не включил код создания AR, но я не думаю, что это необходимо.Мне нужно по-разному сканировать QR-код, чтобы они оба могли работать одновременно.Я попытался встроить QR-код в другой UIView, но безрезультатно.
Любая помощь очень ценится!
Найл