Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox 32位不触发ondevicechange事件_Javascript_Firefox_Webrtc_Getusermedia - Fatal编程技术网

Javascript Firefox 32位不触发ondevicechange事件

Javascript Firefox 32位不触发ondevicechange事件,javascript,firefox,webrtc,getusermedia,Javascript,Firefox,Webrtc,Getusermedia,在Firefox(77.0)32位版本中使用MediaDevices.ondevicechange事件时遇到问题。 事件根本没有被触发。在Firefox(77.0)中,64位代码按预期工作。我的机器是一台64位Windows 10桌面计算机 上的示例也不起作用-它无法检测32位Firefox中的设备更改 还有其他人遇到这个问题吗?这是一个bug还是预期的行为 有没有办法用javascript区分32位和64位Firefox?我看不到仅仅通过特征检测就能做到这一点,因为它们的行为是相同的(代码方面

在Firefox(77.0)32位版本中使用MediaDevices.ondevicechange事件时遇到问题。 事件根本没有被触发。在Firefox(77.0)中,64位代码按预期工作。我的机器是一台64位Windows 10桌面计算机

上的示例也不起作用-它无法检测32位Firefox中的设备更改

还有其他人遇到这个问题吗?这是一个bug还是预期的行为

有没有办法用javascript区分32位和64位Firefox?我看不到仅仅通过特征检测就能做到这一点,因为它们的行为是相同的(代码方面)。 如果是的话,我至少可以实施某种回退


如果您有任何帮助,我们将不胜感激。

有关如何区分32位和64位问题的详细讨论,请参阅:


当涉及
devicechange
事件时,32位和64位版本的Firefox应该没有区别

我猜您在两个版本中使用不同的配置文件,并且您已经在其中一个版本中为您的站点授予了持久的摄像头或麦克风权限,而不是另一个版本

Firefox有一个限制
devicechange
事件的页面,该页面当前已经在使用摄像头或麦克风,或者已经被授予永久摄像头或麦克风权限(您已经选中
☑ 记住过去的这个决定

您可以在Firefox中进行测试:

  • 插入或卸下USB或蓝牙摄像头→ 什么也没发生
  • 单击
    启动摄像头按钮并共享一个摄像头
  • 插入或卸下USB或蓝牙摄像头→ “设备更改!”已记录

  • 此错误有望很快得到解决。

    感谢您的回复。然而,行为上的区别是:我在一个私有选项卡中使用了两个干净的安装,每个32位和64位,一个接一个。在Mozilla页面上,我单击“开始”,然后接受音频权限对话框(Mozilla ondevicechange页面上没有我要记住这个决定的复选框)。如果我拔下麦克风,需要几秒钟的时间,但在64位时,麦克风将从音频设备列表中消失。在32位中,无论我等待多长时间,麦克风都在列表中。我再次尝试使用您发布的小提琴,结果相同。Firefox 64位,在接受并按下start后,显示“设备更改!”输出,Firefox 32位不显示。感谢您的回复,似乎检测64位与32位Firefox是不可能的,只是为了系统。问题是,您可以在64位机器上安装32位Firefox。在这种情况下,检测将失败。