我正在开发适用于Firefox OS的应用程序,它应该在何时加载相机 一个元素被触及。
我在互联网上进行了搜索,但除非我要开始“网络活动”并让用户选择要选择的应用程序,否则我找不到办法做这种事情。
我想强制启动相机应用程序,而不是让用户选择要启动的应用程序。有办法吗? (我真的希望如此!)
提前感谢您的回答!
洛伦佐
答案 0 :(得分:4)
启动相机(应用程序)并访问相机(硬件)是两回事 - 根据您的需要,您可能需要相机API(由Jack建议)从设备相机硬件中提取图像/视频,或者您可能只想启动内置相机应用程序,以便用户可以与之交互(无需从此交互中检索任何结果,如照片)。
不幸的是,这两个用例目前都受到Firefox OS权限系统的限制。
直接对相机进行硬件访问需要"Certified"级别权限,这样才能阻止它在第三方应用程序中使用。如果您需要此功能,your best chance将等到WebRTC (the getUserMedia()
API)登陆Firefox OS设备,这样您就可以直接访问第三方应用程序中的摄像头和麦克风硬件(有{{ 3}}在实际设备上使用WebRTC getUserMedia API,因此在最终用户可用之前不应该花很长时间。)密切注意already some experiments on early Nightly builds of FxOS以跟踪实施进度。
另一个用例是从您的应用启动内置摄像头应用程序。要在设备上启动已安装的应用程序,您需要引用其bug 750011,调用App对象的.launch()
方法将启动所选应用程序。不幸的是,目前获取所述app对象的唯一方法似乎是通过App
object函数调用,它列出了设备上所有已安装的应用程序 - 扫描列表,您可以选择相机应用程序,并使用它的launch()
方法启动它。你可以在Apps.mgmt.getAll()
中see this in action。遗憾的是,权限系统在此用例中也有最后一个字,因为Apps.mgmt
对象调用,也需要“认证”级别权限(webapps-manage
权限)。这是第三方主屏幕(Kevin Grandon's "Matchscreen" homescreen-experiment)无法正常运行并且实际启动应用程序的主要原因之一。虽然有一个like the one by Matteo D'Ignazio放宽了对此的要求,并且有关于第三方主屏幕的工作正在进行中,因此(及时)这也应该得到解决。
答案 1 :(得分:0)
正如在解释App permissions的mdn页面上看到的那样,第三方开发者尚未提供相机API,但未来有计划将其发生。
注意:相机仅限于经过认证的应用程序的原因是应用程序运行的沙箱会阻止访问相机硬件。我们的目标是尽快将其提供给第三方应用,但我们在初始版本中没有时间这样做。
答案 2 :(得分:0)
在半年后,您可以使用FxOS中的webRTC(getUserMedia API)访问相机,就像在现代桌面浏览器中一样。它将是一种优先的方式,而不是过时的mozCamera API(不能用于第三方开发人员)。