2013-05-08 47 views
0

我正在尝试使用html5(和php/jscript,如果需要)访问移动设备的摄像头并拍摄快照。最终的想法是使用它扫描条形码/ qr代码并将它们解码为所需的信息,但这还不是问题。我遇到了一些话题,并找到了这两个片段。访问摄像头源并加载到移动设备页面

<input type="file" accept="image/*" capture="camera" /> 

,并

<form action="server.cgi" method="post" enctype="multipart/form-data"> 
<input type="file" name="image" value = '' accept="image/*" capture> 
<input type="submit" value="Upload"> 
</form> 

第一个让我用我的相机拍照,而第二个增加了一个提交按钮,可以让我将数据发送关闭以进行解码,但是它基本上远离我的网页应用程序页面,转到相机,拍摄照片并返回到网页。这是一个很好的点击,我正在寻找更精简的东西。有没有什么办法让摄像头反馈并将其加载到我的网页应用程序页面,也许在某种画布上?

我在这里读了一些,关于兼容性,什么不是,我不认为这是一个问题;

http://caniuse.com/#search=getUserMedia

即使世界在iPhone商店的应用程序称为“红激光”,这似乎做我想做什么,从而使相机饲料停留在应用程序中,而不需要导航到手机机摄像头设备,但我认为这可能只是在它的本地代码中完成的,显然它可以使用它的本地API,所以也许这是可能的。

这是html5可以做的事吗?

回答

0

检查 HTML Media Capture W3C draft那里你有需要脚本的例子。
在我的firefox 19.02在Android 2.3.6上,您的代码只需启动相机并在输入框中显示文件路径...我不会想象一个最简单的方法!从apk使用zxing也是一样的。
如果你关注的是特定的浏览器,你应该阅读关于主机环境的细节。

+0

你认为可以使用这个; http://dev.w3.org/2011/webrtc/editor/getusermedia.html – 2013-05-08 11:44:37

+0

理论上是的,请阅读[执行状态](http://www.w3.org/2009/dap/wiki/ImplementationStatus#Media_Capture_and_Streams )。但我试过在我的手机中,并得到以下错误:JavaScript错误:“TypeError:navigator.getUserMedia不是一个函数”。 [这是一项实验性技术](https://developer.mozilla.org/en-US/docs/DOM/MediaStreamTrack),所以我会等待一段时间才能有一种解决问题的标准方法。回到你的第一个代码,看起来像[File API](http://www.w3.org/TR/FileAPI/),你可以实现你的目标。 – jgpATs2w 2013-05-08 13:32:03

+0

同意。尝试在我的Android设备上使用更新日期浏览器的Chrome浏览器,并得到一个错误,说getUserMedia不受支持。艰难时期。 – 2013-05-08 14:44:08