【问题标题】:navigator.mozGetUserMedia has been replaced by navigator.mediaDevices.getUserMedianavigator.mozGetUserMedia 已被 navigator.mediaDevices.getUserMedia 取代
【发布时间】:2018-01-21 19:41:51
【问题描述】:

条码扫描器插件出错。它适用于 chrome,但不适用于 Firefox。我在控制台中遇到错误:

navigator.mozGetUserMedia 已被替换为 navigator.mediaDevices.getUserMedia

我的演示网址:https://rawgit.com/saravanasksp/myproject/master/src/index.html

任何人请让我知道这个问题。

【问题讨论】:

  • 这是因为 navigator.mozGetUserMedia 已被 navigator.mediaDevices.getUserMedia 取代 - 检查 dicumentation for mediaDevices.getUserMedia - 哦,顺便说一句,这不是错误这是一个警告,所以它不会破坏你的代码...
  • @JaromandaX 如何解决此问题。你能添加一些代码来简要介绍吗?我根据文档更改了代码,但在 firefox 中仍然出现同样的错误。
  • 请注意,无法确定mediaDevices API 中修复的错误是否会应用于旧版本,因此它实际上可能已经破坏了您的代码。如果需要支持旧版本,请使用the official shim
  • getUserMedia not working on new browsers 可能重复,即使接受的答案是错误的...Check the one by @jib(FF 的 MediaStream 实现者)

标签: javascript jquery html firefox barcode


【解决方案1】:

您应该能够更改您的函数调用。传递给每个约束对象的主要区别是 navigator.mozGetUserMedia 依赖于回调。新的 navigator.mediaDevices.getUserMedia 返回一个 Promise。

那么你在哪里

navigator.mozGetUserMedia(constraints, 
   stream => handleStream(stream), 
    err => handleError(err));

你现在有

navigator.mediaDevices.getUserMedia(constraints)
.then(stream => {handleStream(stream)})
.catch(err => {handleError(err)}

对不起,我应该添加链接

https://developers.google.com/web/updates/2015/10/media-devices https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia

【讨论】:

  • 大声笑刚刚意识到这是 3 岁。希望其他人可以使用我的答案;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 2013-01-26
  • 2016-11-15
  • 2020-03-18
  • 2020-12-13
  • 1970-01-01
相关资源
最近更新 更多