2013-10-05 60 views
4

我正在开发一款适用于Firefox OS的应用程序,该应用程序在触摸某个元素时应该可以加载相机。活动相机FirefoxOS

我在互联网上搜索,但我找不到办法做这样的事情,除非我开始一个“网络活动”,并让用户选择一个应用程序来挑选。

我想强制相机应用程序启动,而不是让用户选择要启动的应用程序。有没有办法? (我真的希望如此!)

谢谢你的提前回答!

洛伦佐

回答

4

启动相机(app)并访问相机(硬件)有两个不同的方面 - 根据您的需要,您可能需要Camera API(如Jack所建议的)将图像/视频从设备相机硬件,或者您可能只想启动内置的相机应用程序,以便用户可以与其进行交互(无需从此交互中检索任何结果,如照片)。

不幸的是,这两种用例目前都受到Firefox OS许可系统的限制。

直接硬件访问摄像头需要"Certified"级别的权限,这会阻止它在第三方应用程序中使用。如果您需要此功能,your best chance将等待WebRTC (the getUserMedia() API)登录到Firefox OS设备,这将使您可以直接访问第三方应用程序中的摄像头和麦克风硬件(有already some experiments on early Nightly builds of FxOS在实际设备上使用WebRTC getUserMedia API,因此你也不应该花太多的时间才能将它提供给最终用户)。请关注bug 750011以遵循实施进度。

另一个用例是从您的应用程序启动内置摄像头应用程序本身。要在设备上启动已安装的应用,您需要参考其App object,调用应用对象的.launch()方法将启动所选应用。不幸的是,目前获取上述应用程序对象的唯一方式似乎是通过函数调用Apps.mgmt.getAll(),该函数列出了设备上已安装的所有应用程序 - 扫描列表可以选择相机应用程序,并使用其launch()方法启动它。你可以在Kevin Grandon's "Matchscreen" homescreen-experimentsee this in action。不幸的是,在这个用例中权限系统也是最后一个词,因为Apps.mgmt对象调用也需要“Certified”级权限(webapps-manage权限)。这是第三方主屏幕(like the one by Matteo D'Ignazio)目前无法运行并实际启动应用程序的主要原因之一。虽然放宽了对此的要求,但有关于第三方主屏幕的工作正在进行,所以(及时)这也应该得到解决。

+0

谢谢你的回答。 – LoreV

0

正如所看到的解释App permissions的MDN页面上,摄像头API不提供给第三方开发者还没有,但也有它在未来发生的计划。

注意:相机仅限于获得认证的应用程序的原因是应用程序运行的沙箱会阻止访问相机硬件。我们的目标是尽快将其提供给第三方应用程序,但我们没有时间在最初版本中这样做。

0

半年后,您可以在FxOS中使用webRTC(getUserMedia API)以像现代桌面浏览器一样访问摄像头。这将是一个优先的方式,而不是过时的mozCamera API(它不能用于第三方开发者)。