活动相机FirefoxOS
我正在为Firefox OS开发一个应用程序,该应用程序在触摸某个元素时应该加载相机。
我在互联网上进行了搜索,但是我找不到办法做这样的事情,除非我要开始“网络活动”并让用户选择一个应用程序来挑选。
我想强制启动相机应用程序,而不是让用户选择要启动的应用程序。 有没有办法? (我真的希望如此!)
提前谢谢你的回答!
洛伦佐
启动相机(应用程序)并访问相机(硬件)是两件不同的事情 - 根据您的需要,您可能需要Camera API(如Jack所建议的)将图像/视频从设备相机硬件中取出,或者您可能只是想要启动内置的相机应用程序,因此用户可以与其进行交互(无需从此交互中检索任何结果,如照片)。
不幸的是,这两种用例目前受到Firefox OS许可系统的限制。
直接硬件访问摄像头需要获得“认证”级别的权限,这可以防止它在第三方应用程序中使用。 如果您需要此功能,最好的机会是等待WebRTC( getUserMedia()
API)登陆Firefox OS设备,这将使您可以直接访问第三方应用程序中的相机和麦克风硬件(已经有一些实验早期版本的FxOS在实际设备上使用WebRTC getUserMedia API,所以您不应该花太多时间才能将它用于最终用户)。 密切关注bug 750011,以跟踪实施进度。
另一个用例是从您的应用程序启动内置的相机应用程序本身。 要在设备上启动已安装的应用程序,您需要引用其App
对象,调用App对象的.launch()
方法启动所选应用程序。 不幸的是,目前获取所述应用程序对象的唯一方式似乎是通过Apps.mgmt.getAll()
函数调用,该函数列出了设备上已安装的所有应用程序 - 扫描列表可以选择相机应用程序,并使用其launch()
方法启动它。 您可以在Kevin Grandon的“Matchscreen”主屏幕实验中看到这一点。 不幸的是,许可系统在这个用例中也有最后一个词,因为Apps.mgmt
对象调用也需要“认证”级权限( webapps-manage
权限)。 这是为什么第三方主屏幕(如Matteo D'Ignazio的主屏幕)无法正常运行并且实际启动应用程序的主要原因之一。 目前正在讨论如何放宽这方面的要求,而且还有关于第三方主屏幕的工作正在进行中,因此(及时)这也应该得到解决。
正如在解释应用程序权限的mdn页面上看到的那样,相机API尚不适用于第三方开发者,但未来还有计划。
注意:相机仅限于经过认证的应用程序的原因是,应用程序运行的沙箱会阻止访问相机硬件。 我们的目标是尽快将其提供给第三方应用程序,但我们没有时间在最初版本中这样做。
半年后,您可以使用FxOS中的webRTC(getUserMedia API)像现代桌面浏览器一样访问摄像头。 这将是一个优先的方式,而不是过时的mozCamera API(它不能用于第三方开发者)。
链接地址: http://www.djcxy.com/p/79743.html