html - 在 Firefox 中检测 getUserMedia

标签 html firefox getusermedia browser-feature-detection

我正在编写一个网络应用程序,它使用 getUserMedia 访问用户的网络摄像头并让他拍摄快照。

这会优雅地降级,让他们手动上传文件,这在这个用例中更烦人,但至少他们可以在其他浏览器上使用该应用。

我正在做的是:

  • 如果浏览器不支持 getUserMedia,我会显示一个标志,上面写着“嘿,去换个更好的浏览器吧”
  • 如果是,我显示“单击允许”,调用 getUserMedia
  • 如果 getUserMedia 调用“失败”回调,我会显示“哎呀,那没有用。你点击允许了吗?”

现在,Firefox 确实 支持 getUserMedia,但您需要在“about:config”中手动打开一个魔法标志。但是,如果该标志关闭(这是默认设置),则 getUserMedia 存在,因此看起来浏览器确实支持它,但调用它不会做任何事情(甚至不调用我的失败函数)

这是所有可能性中最糟糕的一种,因为我无法真正告诉用户任何有趣的事情。

有什么好的方法可以干净利落地处理这个问题吗?任何让我知道如果标志关闭,Firefox 支持相机的任何事情,基本上,没有我添加“如果 Firefox,假设它不受支持,直到有一天我们中的一个人意识到该标志现在默认打开。

最佳答案

我提交了 https://bugzilla.mozilla.org/show_bug.cgi?id=828839对此。

除了不进行 UA 嗅探外,我不确定在此期间可以给您什么建议。只需检查未加前缀的 getUserMedia(它在它所在的任何 UA 中都能更好地工作)并且不要检查有前缀的,因为它是真正实验性的 mozGetUserMedia

关于html - 在 Firefox 中检测 getUserMedia,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236336/

相关文章:

java - 覆盖标签高度元素

javascript - 自定义光标卡在左上角

css - 在 IE/Chrome/Firefox 中打印预览(或打印)时不显示图像

javascript - 如果 Tamarin 在 Mozilla Firefox 中运行,是否可以运行 ES4 代码?

javascript - Safari getUserMedia() 未处理的 promise 拒绝

javascript - 在追加之前检查 HTML 元素是否存在

html - 如何在没有文本对齐的情况下在 div 中居中?

javascript - 突变观察者未移除。为什么? (795978错误)

javascript - 我应该如何显示 getUserMedia()

javascript - 使用新约束调用 getUserMedia 会导致黑屏 (MediaStream.ended=true)