gpt4 book ai didi

javascript - 在 Javascript 中读取 Firefox 的 media.navigator.enabled 的值

转载 作者:行者123 更新时间:2023-11-30 06:36:06 26 4
gpt4 key购买 nike

我一直在使用 Javascript 中的 getUserMedia() 构建一个演示,以获取设备网络摄像头并将视频流绘制到 html5 Canvas 上。对于不支持 getUserMedia() 的浏览器,我将默认返回演示的 Flash 版本。

现在这一切在 Chrome 和 Opera 中都可以正常工作,几乎在 Firefox 18 中也能正常工作。但是 Firefox 仍然有一个问题——在配置文件中,media.navigator.enabled 仍然默认设置为 false。这意味着用户无法选择是否启用相机,而我的脚本只是在等待一个永远不会到来的答案。

显然我不能在配置文件中更改或设置此首选项,我也不想这样做。然而,无论如何获取这个标志的值,以便我可以在继续之前运行检查,如“if(media.navigator.enabled)...”?

否则我将不得不一直为 Firefox 使用 Flash,这会有点遗憾。

演示是here .

最佳答案

media.navigator.enabled 首选项不应该由用户打开。而是设置为 false 因为这个特性在 Firefox 18 中还不够成熟,目前仅用于测试。好消息:它will be enabled by default在 Firefox 20 中。Firefox 20 应该在 3 月 2 日发布,几天后你就可以假设 Firefox 支持这个功能(只有微不足道的 Firefox 用户留在旧版本上)。

坏消息:我认为您无法很好地处理旧版 Firefox。他们也有 navigator.mozGetUserMedia() 方法,但它什么都不做。您可以选择超时(例如,如果在切换到 Flash 后备的一分钟内既没有调用成功回调也没有调用错误回调)或用户代理嗅探。后者很丑陋,但对您来说可能是更好的解决方案:

var match = /\brv:([\d\.]+)/.exec(navigator.userAgent);
if (match && parseFloat(match[1]) < 20)
alert("getUserMedia() not supported");

请注意,我明确嗅探了 Gecko 版本而不是 Firefox 版本 - 那里有更多基于 Gecko 的浏览器,而不仅仅是 Firefox。

关于javascript - 在 Javascript 中读取 Firefox 的 media.navigator.enabled 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com