我需要使用iOS设备上的相机扫描MicroQR条形码。有人知道添加类型的本机方法吗?例如,我的内建常量如下所示:哦,是的,我正在使用Swift
let supportedCodeTypes = [AVMetadataObject.ObjectType.upce, AVMetadataObject.ObjectType.code39,
AVMetadataObject.ObjectType.code39Mod43, AVMetadataObject.ObjectType.code93,
AVMetadataObject.ObjectType.code128, AVMetadataObject.ObjectType.ean8,
AVMetadataObject.ObjectType.ean13, AVMetadataObject.ObjectType.aztec,
AVMetadataObject.ObjectType.pdf417, AVMetadataObject.ObjectType.itf14,
AVMetadataObject.ObjectType.dataMatrix, AVMetadataObject.ObjectType.interleaved2of5,
AVMetadataObject.ObjectType.qr]
我在想也许可以这样实现:
let microqr = AVMetadataObject.ObjectType(rawValue: String)
然后,我可以将其添加到我的数组中,但是我不知道将什么作为rawValue:的字符串放置。当然,我什至不确定这是否行得通。我真的很感激朝着正确的方向前进。谢谢
最佳答案
否-AVCaptureMetadataOutput
的识别引擎在系统软件或硬件中,并且Apple不提供用于插入您自己的引擎以用于新对象类型的API。
您是正确的,可以使用AVMetadataObject.ObjectType
初始值设定项和任意字符串构造类型为init(rawValue: String)
的值。但是,AVCapture系统只能对它知道的对象类型起作用-AVMetadataObject.ObjectType
类型的其他值对于使用该类型的API毫无意义。 (我不确定此类API是否会忽略未知的ObjectType
值或引发错误,但这很容易检查...)
换句话说,调用AVMetadataObject.ObjectType(rawValue: "someNewBarcodeStandard")
不会教AVCapture如何识别这种条形码,而不是AVMetadataObject.ObjectType(rawValue: "🐟")
教它如何识别鱼类。
顺便说一句,Swift类型推断意味着您不必写出所有类型/常量名称:
let supportedCodeTypes: [AVMetadataObject.ObjectType] = [.upce, .code39,
.code39Mod43, .code93,
.code128, .ean8,
.ean13, .aztec,
.pdf417, .itf14,
.dataMatrix, .interleaved2of5,
.qr]
关于ios - 有没有一种方法可以将MicroQR条形码添加为AVMetadataObject.ObjectType?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53215759/