ZXing QR reader 库 Android 阅读速度非常慢

ZXing QR reader library for Android reading painfully slow

我正在尝试借助 android 的 ZXing 库来读取条码。在我的应用程序中,当我单击一个按钮时,我会被带到条形码 reader activity,在那里我可以在 ZXing reader 的帮助下阅读代码。此时我的应用程序可以成功读取 QR 码,但问题是我每次都必须将相机保持在某个 distance/angle(顺便说一句,不是固定的)。所以我自然而然地在阅读二维码时进行了一次小型锻炼(夸张)。此外,我尝试打开闪光灯,但当我这样做时,阅读一个任务变得更加困难。我有用户移动视觉库,速度非常快,但目前不支持闪光灯(或者我可能还没有找到如何打开闪光灯)。

我猜我的问题与分辨率有关。条形码是从使用分辨率非常低的热敏打印机的机器打印的。由于我无法更改打印机的分辨率,有没有办法降低ZXing读取条码的分辨率?

(PS 由于 Mobile Vision 让我们改变了分辨率,我得到了较低分辨率的想法,而我在读取较高分辨率时遇到了问题)。

如果有办法打开闪光灯,我更愿意使用 Mobile Vision。

我的条形码读取代码 class 看起来像这样

private ZXingScannerView mScannerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mScannerView = new ZXingScannerView(this);
    mScannerView.setAutoFocus(true);
    //mScannerView.setFlash(true);
    setContentView(mScannerView);
}

@Override
protected void onResume() {
    super.onResume();
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();
}

@Override
protected void onPause() {
    super.onPause();
    mScannerView.stopCamera();
}

@Override
public void handleResult(Result result) {

    if (result.getText() != null) {
        Intent qrCodeIntent = new Intent();
        qrCodeIntent.putExtra("barcode", result.getText());
        setResult(CommonStatusCodes.SUCCESS, qrCodeIntent);
        Log.v("Code", result.getText());
        Log.v("Code Format", result.getBarcodeFormat().toString());
        mScannerView.stopCamera();
        finish();
    }

}

二维码

如果我没记错的话,默认情况下,ZXing 使用所有格式的过滤器来检查图像。我的意思是,它首先扫描是否是 EAN13,而不是 UPC-A,依此类推,直到到达 QR 解析器。 ZXing的扫描视图可以to set specific decoders。我相信它会加快扫描过程。

我通过设置以下内容获得了更快的体验。我需要二维码扫描。所以,我设置 IntentIntegrator.QR_CODE.

IntentIntegrator integrator = new IntentIntegrator(activity);
                    integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setPrompt("Scan");
integrator.setCameraId(0);
integrator.setBeepEnabled(true);
integrator.setBarcodeImageEnabled(false);
integrator.setOrientationLocked(true);
integrator.initiateScan();

我还从清单中删除了相机自动对焦。

N.B。我正在使用 this 库。