gpt4 book ai didi

javascript - 为什么 mediaDevices.enumerateDevices 会两次列出某些设备?什么是默认值?

转载 作者:行者123 更新时间:2023-12-03 16:41:25 26 4
gpt4 key购买 nike

我在 Chrome 中用 JavaScript 编写了这段代码:

navigator.mediaDevices.enumerateDevices()
.then((list) => {
console.log(list);
});

这会输出一个媒体设备列表,如麦克风和相机。每个设备都表示为一个具有自己的对象 deviceId .但是某些设备,特别是其中一个麦克风,会被列出两次。有一次他们各自的 deviceId设置为 'default' .一个默认麦克风有什么特别之处?我怎么知道哪个实际 deviceId有吗?

最佳答案

一个 deviceId让网站管理他们的用户正在使用的设备。例如。将其存储在 cookie 中以记住用户上次的偏好。

某些浏览器(Chrome、Opera)两次列出相同的麦克风,但 id 不同。就我而言:

  • 默认 - 内置麦克风(内置)
  • 内置麦克风(内置)

  • 前者是“操作系统默认设置”,无论最终用户在系统偏好设置/声音 (OSX) 或控制面板/声音 (Windows) 中进行了怎样的配置。这个想法是:当从 cookie 中调用并使用时,它的 id 会为您提供使用时操作系统中配置的任何内容,这可能与上次不同。

    后者始终是特定的麦克风。他们的 groupId匹配;它们是相同的物理设备atm。
    deviceId = "default"是 Chrome(和 Opera)的奇怪之处。 AFAICT 和其他任何人一样,它是一个有效的 id。如果你想要另一个,比较他们的 groupId s 找到它。

    Safari 不这样做。 Firefox 最近停止这样做(从 63 版开始)。

    相机永远不会以这种方式复制。

    关于javascript - 为什么 mediaDevices.enumerateDevices 会两次列出某些设备?什么是默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53304934/

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