【问题标题】:Using mediaDevices.getUserMedia to access front facing camera on a laptop使用 mediaDevices.getUserMedia 访问笔记本电脑上的前置摄像头
【发布时间】:2017-04-04 15:49:48
【问题描述】:

我正在为我们的组织开发一个内部网络应用程序。该应用程序将主要(如果不是专门)在台式机/笔记本电脑上使用。

我需要让用户能够拍摄自己的照片。我关注了example posted by David Walsh here

如果用户的计算机上只有一个摄像头,则此方法可以正常工作。但是,在同时具有前置和后置摄像头的机器上(如 Surface Pro 4),此代码默认为后置摄像头。我尝试像这样调整代码:

navigator.mediaDevices.getUserMedia({video: {facingMode: "user"}, audio: false}).then(...)

但是,这并没有什么不同。我猜这主要是为移动设备设计的。

是否有任何方法可以将摄像头强制放在前面(如果有),或者更好的是,让用户能够在具有前置和后置摄像头的笔记本电脑设备上切换摄像头?

【问题讨论】:

  • 它应该可以在 Firefox 中运行。在 Chrome 中,您仍然需要 adapter.js polyfill I think。实际上,我只是意识到 polyfill 不起作用,因为 Surface Pro 默认使用后置摄像头会让它感到惊讶。我会尽力解决这个问题。
  • 你能帮我一个忙,在Firefox试试吗? (我没有 Surface Pro)
  • 它在 Firefox 中确实有效——不需要 polyfill。当请求我允许使用我的相机时,Firefox 会提供一个下拉菜单让我选择要使用的相机。 (仍然想弄清楚如何让它在 Edge 和 Chrome 中工作)
  • 是的,但前置摄像头是默认选择吗?除非你使用{exact},Firefox 仍然会让你选择({ideal} 或纯字符串只会改变列表中的默认选项)。 - this 是否可以在 Firefox 中强制前后使用,即使您告诉它记住该决定?顺便说一句,我只是 fixed adapter.js 所以这现在也应该在 Chrome 中工作,只要你使用 adapter.js。如果它不起作用,请告诉我。
  • 糟糕,刚刚在 Chrome 中再次尝试,它运行良好——不确定之前发生了什么。但是,它似乎工作得很好!非常感谢。如果你想添加你的 adapter.js polyfill 作为答案,我会这样标记它!

标签: javascript html camera getusermedia


【解决方案1】:

根据规范,facingMode 约束是正确的答案,并且适用于 Firefox。 Chrome 还没有实现它。但是,您可以使用adapter.js polyfill 来获取它。

试试看here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多