我们正在使用Vision库扫描GS1条形码.
The library does not recognize the special character "GS" in the iOS 16 versions.个
"GS"-->;组分隔符(ASCII 29)
在旧版本中,我们不会遇到这样的问题.例如,iOS 15.6或更低版本.我已经上传了下面的GS1条形码示例图片.
After scanning we should be getting: {GS}10BF50001A{GS}21003032{GS}1122012722VD020个
What we get instead on iOS 16 is: 10BF50001A210030321122012722VD020个
我还发布了一个关于如何使用库的示例代码.我们没有更改代码,该错误仅出现在iOS 16版本中.我们想知道是不是引入了窃听器.
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return
}
let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: .right)
do {
try imageRequestHandler.perform([detectBarcodeRequest])
} catch {
logger.error(tag: TAG, "barcode error: \(error)")
}
}
private lazy var detectBarcodeRequest = VNDetectBarcodesRequest { [weak self] request, error in
guard error == nil else {
self?.logger.error(tag: self?.TAG, "barcode error: \(error)")
return
}
self?.processVNRequest(request)
}
private func processVNRequest(_ request: VNRequest) {
guard let barcodes = request.results else {
return
}
for barcode in barcodes {
guard let potentialBarcode = barcode as? VNBarcodeObservation else {
return
}
guard let payload = potentialBarcode.payloadStringValue else {
return
}
prepareToNotifyDetectionEvent(payload)
}
}
提前谢谢您.