AVCaptureMetadataOutput扫描多种类型

时间:2017-01-24 00:34:21

标签: avfoundation barcode-scanner

我是Xcode(7.2)和Swift的新手。

我有一个程序员创建一个应用程序作为我想要的例子。他目前无法使用,我自己找不到答案。

我想扫描多种条形码类型,我需要帮助将其集成到我的代码中。

这是代码。我可以交换类型,它工作正常,但我想一次支持所有类型。

let metadataOutput = AVCaptureMetadataOutput()

if(session.canAddOutput(metadataOutput)){
    session.addOutput(metadataOutput)

    metadataOutput.setMetadataObjectsDelegate(self, queue: dispatch_get_main_queue())
    metadataOutput.metadataObjectTypes = [AVMetadataObjectTypeEAN8Code]
        //[AVMetadataObjectTypeUPCECode]
    //[AVMetadataObjectTypeEAN13Code]
}else{
    scanningNotPossible()
}

我认为我需要重新定义一些东西,但请帮忙,因为我无法弄明白。

2 个答案:

答案 0 :(得分:0)

这将扫描上述代码段中提到的三种类型:

metadataOutput.metadataObjectTypes = [AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeUPCECode, AVMetadataObjectTypeEAN13Code]

如果您命令单击其中一个符号,例如AVMetadataObjectTypeEAN8Code,您将找到可以添加到上述阵列的其他元数据对象类型。

答案 1 :(得分:0)

但是有点慢

let metadata = AVCaptureMetadataOutput()
metadata.metadataObjectTypes = metadata.availableMetadataObjectTypes