HTML5 getUserMedia相机对焦

11

我创建了一个简单的移动应用程序,它显示相机并使用https://github.com/LazarSoft/jsqrcode解码QR码。

由于我的相机模糊,这仅适用于大型QR码。有没有办法使用Javascript对相机进行聚焦?这样也可以处理较小的图像,或者还有其他解决方案吗?

编辑 我注意到,如果我使用Android应用程序(而不是HTML5版本),它可以处理更多的颜色差异并扫描我的代码,而jsqrcode则不能。 我是否使用了错误的库?

使用ZXING

我的工作代码:

public void scan() {
    IntentIntegrator integrator = new IntentIntegrator(this);
    integrator.initiateScan();
}

 public void onActivityResult(int requestCode, int resultCode, Intent intent) {
     // On Scan result we get get to this part
     try {
          IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
          if (scanResult != null) {
            // CODE

          }
     } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我还需要将com.google.zxing.integration.android包导入到我的项目中。


你在这方面有什么进展吗?我正在尝试使用“environment”命令访问后置摄像头,但正如你所建议的那样,它无法对焦,也不适合扫描? - andybarnes
据我所知,目前还不可能。我正在使用XZing扫描应用程序(互联网上有多个演示),从我的应用程序中打开该应用程序并进行扫描。那个应用程序具有完整的扫描功能。 - Niels
谢谢,我会调查一下! - andybarnes
添加了一些我的代码。GL - Niels
1个回答

1

请问HTML5版本在您的手机上是否能正常工作?CanIUse建议除了黑莓手机,它不应该在任何移动设备上工作...但它们有时不是最新的。

无论如何,这样一个新的API很难有一个通用的解决方案。您可以考虑在手机上使用应用程序(本地代码)版本,在桌面上使用启用了Flash的版本。您将需要进行自己的设备嗅探:

if( user_has_flash ) {
    // Load an HTML5/Flash solution
} else if( is_mobile_device) {
    // defer to the native code
    // zxing has a phonegap plugin - https://github.com/wildabeast/BarcodeScanner
} else {
    alert("Your device does not have scanning capabilities");
}

不确定为什么会被踩。他试图使用HTML5解决方案,我提供了一个更兼容的解决方案,涉及HTML5和本地相机应用程序(zxing)。在我的回答之后,OP使用zxing库更新了问题的解决方案。 - Ryan Wheale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接