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