近期收到PM通知,發票 QRCode 有時候會掃不到,同一張發票Android掃得到,但是公司另一個專案的 iOS 版的可以掃 。 這問題可大可小,經過幾次試驗以後,掃不到的那張發票用 Swift metaDataOutput 回傳的都是 nil, 上網查也查不出原因,有看到swift 開發者上有人發問,也不了了之。

為此特地請PM去問出另一個專案用的是 Firebase ML Kit.............

Recognize text in images with ML Kit on iOS | Google Developers


需求:

動工

原本使用的是原生 metaOutput,只要簡單的將 metaData object 的 bounds 轉換後去比較即可,沒有難度。 但是改成 captureOutput 就比較複雜了。

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {