swift - 我更新 Xcode 11 和 iOS 13 后,firebase 文本检测不起作用

标签 swift firebase swift5 firebase-mlkit

大家好,我已将我的 Xcode 更新至 11,并将我的 iPhone 更新至 iOS 13。我正在使用带有实时摄像头的 firebase ml 文本检测来检测文本,并更新了 firebase 库。问题是这段代码现在不起作用并向我显示图片中显示的奇怪错误 error image 在更新之前发现这个错误我已经尝试了很多方法来解决这个问题没有希望。我希望有人帮助我。

//MARK:- CAMERA SETUP VIEW //=======================================================

    func cameraSetUp(){
        //MARK INPUT
        captureSession.sessionPreset = .photo
        guard  let captureDevice = AVCaptureDevice.default(for: .video) else {return}
        guard  let input = try? AVCaptureDeviceInput.init(device: captureDevice) else {return}
        captureSession.addInput(input)
        captureSession.startRunning()
        //MARK OUTPUT
        let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        cameraview.layer.addSublayer(previewLayer)
        previewLayer.frame = cameraview.layer.bounds
        let dataoutput = AVCaptureVideoDataOutput()
        let queue = DispatchQueue(label: "VideoQueue")
        dataoutput.setSampleBufferDelegate(self, queue: queue)
        captureSession.addOutput(dataoutput)

    }

//MARK:- CAMERA captureOutput //=======================================================
    func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {

         self.cameraOperation (buffer : sampleBuffer)

    }

//MARK:- CAMERA Operation //=======================================================
    func cameraOperation (buffer : CMSampleBuffer){
       let textRecognizer = vision.onDeviceTextRecognizer()
       Using_back_facing_camera (metadata : metadata)
      let image = VisionImage(buffer: buffer )
          image.metadata = metadata
        // Using back-facing camera

        self.detectText (image : image, textRecognizer: textRecognizer)
    }


    func Using_back_facing_camera (metadata :VisionImageMetadata){
        // Using back-facing camera
            let devicePosition: AVCaptureDevice.Position = .back
            let deviceOrientation = UIDevice.current.orientation
            switch deviceOrientation {
            case .portrait:
                metadata.orientation = devicePosition == .front ? .leftTop : .rightTop
            case .landscapeLeft:
                metadata.orientation = devicePosition == .front ? .bottomLeft : .topLeft
            case .portraitUpsideDown:
                metadata.orientation = devicePosition == .front ? .rightBottom : .leftBottom
            case .landscapeRight:
                metadata.orientation = devicePosition == .front ? .topRight : .bottomRight
            case .faceDown, .faceUp, .unknown:
                metadata.orientation = .leftTop
            }
    }

    //MARK:- THIS FUNC RESPONSABLE FOR DETECT THE TEXT
    func detectText (image : VisionImage , textRecognizer: VisionTextRecognizer) {
//        let imageTest = VisionImage(image: UIImage(named:"test1")!)
            textRecognizer.process(image) { [weak self ] result, error in

                       guard let self = self else {return}
                       guard error == nil else {return}
                       guard  let result = result else {return}
                       if self.passToAnotherPage == true {
                        print(result.text)
                           self.KSSView.text = result.text
                           self.resultText = result.text
                           self.filterCamera(resultText : self.resultText)
                       } else {
                           self.resultText = ""
                       }

                   }


    }

最佳答案

错误图像中突出显示的错误是无害的。日志中还有多个其他错误,可能表明应用程序代码中存在问题。

请尝试 ML Kit 的 QuickStart mlvision 示例应用程序中的文本识别示例,网址为:

https://github.com/firebase/quickstart-ios.git

它在 iOS 13.1 和 Xcode 11.0 上运行良好。

关于swift - 我更新 Xcode 11 和 iOS 13 后,firebase 文本检测不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58079591/

相关文章:

ios - 为什么我们应该在 Swift 中使用 "NSMutableArray"或 "NSMutableDictionary"?

swift - 如何在 SwiftUI 的应用程序文件中使用 EnvironmentObject

android - 播放服务广告与 appcompat 冲突

ios - 如何使用 Storyboard使用 Lottie Animation

ios - 遮盖 ImageView Swift 5

swift - 如何仅获取 Swift4 结构数组中每个唯一名称的最后一个值?

ios - 使用 Xcode LLDB 控制台在 Swift 中调试闭包

java - 删除 Cloud Firestore 数据库中的集合时建议使用哪些参数?

android - Firebase 获取最后一个 ID - limitToLast 不工作 - android

ios - 收到本地通知时无法播放音乐,当应用程序快速处于后台状态时