2013-11-26 108 views
10

我创建了一个简单的移动应用程序,它显示了摄像头和解码与https://github.com/LazarSoft/jsqrcodeHTML5 getUserMedia相机聚焦

QRCodes因为我的相机是模糊的,这适用于大QRCodes。有没有一种方法可以使用Javascript对焦相机?所以这也适用于较小的图像或有另一种解决方案?

编辑 我发现,如果我使用Android应用程序(而不是HTML5版本),它可以处理更多的路色差,可以扫描我的代码,而jsqrcode不能。我使用错误的库吗?

使用斑马线

我的工作代码:

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包添加到我的项目。

+0

你有没有得到这个地方?我正尝试使用'环境'命令访问后置摄像头,但是如您所建议的那样,它不会对焦并且不适合扫描? – andybarnes

+0

据我所知,这是不可能的。目前我正在使用XZing扫描应用程序(在互联网上有多个演示程序),并从我的应用程序中打开该应用程序并让它扫描。该应用具有完整的扫描可能性。 – Niels

+0

谢谢,我会调查! – andybarnes

回答

-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"); 
} 
+0

不知道为什么downvote。他正在尝试HTML5解决方案,我提供了兼容HTML5和本机相机应用程序(zxing)的更兼容的解决方案。在我回答之后,OP使用zxing库解决方案更新了问题。 –