我在Chrome中的JavaScript中编写以下代码:
navigator.mediaDevices.enumerateDevices()
.then((list) => {
console.log(list);
});
这将输出媒体设备列表,例如麦克风和相机。每个设备都表示为具有自己的deviceId
的对象。但是有些设备(例如特别是一个麦克风)被列出了两次。并且一次将它们各自的deviceId
设置为'default'
。一个默认麦克风有何特别之处?以及我如何知道它实际是哪个deviceId
?
答案 0 :(得分:3)
deviceId
使网站可以管理用户使用的设备。例如。将其存储在cookie中以记住上次用户的偏好。
某些浏览器(Chrome,Opera)两次列出相同的麦克风,但使用不同的ID。就我而言:
前者是“操作系统默认值”,无论最终用户在系统偏好设置/声音(OSX)或控制面板/声音(Windows)中配置了什么。这个想法是:从cookie中调用并使用它时,其ID会为您提供在使用时在操作系统 中配置的任何内容,该值可能与上次不同。
后者始终是特定的麦克风。他们的groupId
场比赛;它们是相同的物理设备atm。
deviceId = "default"
是Chrome(和Opera)的一种奇数。 AFAICT是一个有效的ID,与其他任何ID一样。如果您想要另一个,请比较他们的groupId
来找到它。
Safari不执行此操作。 Firefox最近停止了这样做(从版本63开始)。
照相机永远不会以这种方式复制。