如何获取(内置)麦克风的硬件信息?

2023-12-20

当用户在我的网站上录制音频文件时,是否可以读取(内置)麦克风的硬件信息(至少是名称)?

JavaScript 可以做到这一点吗?或者有其他方法可以解决这个问题吗?我在网上搜索但只能找到用 JavaScript 录制的脚本。


新版本:可在 Firefox、MS Edge 和 Chrome 45 中使用,并带有实验标志。

使用标准navigator.mediaDevices.enumerateDevices(),您可以获得可用来源的列表。每个源都有一个kind财产,以及label.

var stream;
navigator.mediaDevices.getUserMedia({ audio:true })
.then(s => (stream = s), e => console.log(e.message))
.then(() => navigator.mediaDevices.enumerateDevices())
.then(devices => {
  stream && stream.stop();
  console.log(devices.length + " devices.");
  devices.forEach(d => console.log(d.kind + ": " + d.label));
})
.catch(e => console.log(e));

var console = { log: msg => div.innerHTML += msg + "<br>" };
<div id="div"></div>

文档及相关

  • navigator.mediaDevices在 MDN 上 -https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices
  • “媒体捕获和流”规范 -http://w3c.github.io/mediacapture-main/getusermedia.html#mediadevices http://w3c.github.io/mediacapture-main/getusermedia.html#mediadevices
  • Sam Dutton 选择输入源的演示 -https://webrtc.github.io/samples/src/content/devices/input-output/ https://webrtc.github.io/samples/src/content/devices/input-output/

最后一个演示可以在常规 Chrome 中运行,这要归功于适配器.js https://github.com/webrtc/adapter填充。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取(内置)麦克风的硬件信息? 的相关文章

随机推荐

  • Python 将 k-means 集群与实例关联

    我已阅读文档here http scikit learn org stable modules generated sklearn cluster KMeans html以及看着this http fromdatawithlove theg
  • 在 MongoDB 中搜索多个集合

    我知道 MongoDB 的理论以及不支持联接的事实 并且我应该尽可能使用嵌入文档或非规范化 但这里是 我有多个文档 例如 用户 嵌入了 Suburbs 但也有 名字 姓氏 郊区 其中嵌入州 嵌入 School 的 Child 属于 User
  • 在maven中查找定义属性的地方

    我目前正在各种项目和 git repo 中重构大量 pom xml 有时 项目 A 中的 pom 需要项目 B 中定义的工件 其版本由属性定义
  • 如何构建自动更新的拖放层次树

    我目前正在 R 工作 需要一种可视化分层树的方法 我希望能够最初定义一棵树 其中每个节点都有一个父节点 每个父节点可以有多个子节点 我希望能够将节点拖放到不同父级下并执行一些计算 在 R 中 然后在可视化上进行更新 例如假设每个节点都有一个
  • 正则表达式“包含”另一个正则表达式

    有没有办法测试一个正则表达式是否 包含 另一个正则表达式 例如 RegEX1 a b RegEx2 a1 b RegEX1 包含 RegEX2 据我所知 这是不可能的 我错了吗 OK joel neely has shown that it
  • C++ Boost.ASIO async_read_until 慢

    我遇到了一个不寻常的问题 我有一个 C Boost ASIO Web 服务器 为了处理传入请求 我使用以下代码 boost asio async read until socket response r n r n boost bind c
  • 如何使用seaborn制作气泡图

    import matplotlib pyplot as plt import numpy as np data x IEEE Elsevier Others y 7 6 2 import seaborn as sns plt legend
  • Modelica - Dymola Python 界面:将输出格式设置为文本

    我通过 Dymola Python 界面使用 Dymola 运行 Modelica 模拟 我的目标是将结果文件写入文本输出 即写入 txt文件 即使我的模型包含注释 Dymola experimentSetupOutput textual
  • C/C++ 中的单引号、双引号和 sizeof('a')

    我正在看问题C 或 C 中的单引号与双引号 https stackoverflow com questions 3683602 single quotes vs double quotes in c 我无法完全理解给出的解释 所以我写了一个
  • 位运算符优先级

    我在类 C 语言中遇到过几次的问题是 original included excluded BAD 由于优先级 它解析为 original included excluded excluded has no effect 有谁知道三个独立优
  • Git 预提交挂钩在 GitHub for mac 中失败(在命令行上运行)

    我创建了一个非常简单的预提交脚本 usr bin env sh Run tests npm test if ne 0 then echo Tests failed Aborting exit 1 fi exit 0 当我跑步时git com
  • MyBatis - 找不到构造函数

    我在 MyBatis 映射方面遇到问题 我有一个像这样的域类 public class MyClass private Long id private Date create private String content MyClass L
  • Android:键盘与 EditText 重叠(带有打印屏幕)

    我有一个 EditText 用户可以输入numbers在 因此 当用户单击 EditText 文本框时 将打开带有数字的键盘 正如您所看到的 键盘隐藏了文本框的一小部分 But when I press a key for example
  • 有没有办法从boto3获取access_key和secret_key? [复制]

    这个问题在这里已经有答案了 当我启动具有 IAM 角色的 EC2 实例时 我可以使用boto3在该 EC2 实例上 不必指定 aws 访问权限和密钥 因为boto3 自动读取它们 http boto3 readthedocs io en l
  • 如何使容器的子 div 与 IE7 中最大子 div 的宽度相匹配?

    这似乎应该是重复的 我发现了很多类似的问题 但没有一个对我的答案有效 如果我漏掉了一个 请指出 我会删除这个 我有一个绝对定位的 div 包含几个子 div 我希望容器扩展到最宽子级的宽度 并且所有其他子级扩展到相同的宽度 容器应有最小宽度
  • 寻找有关神经网络的良好参考[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 复制 有哪些学习人工神经网络的好资源 https stackoverflow com question
  • 使用 cairo_pdf 设备时的字体间距

    我正在使用 ggtext 并且我注意到有gaps当我使用较小的字体大小时的字体间距 library tidyverse library ggtext ggplot annotate richtext x 0 y 1 label span s
  • 未找到 ID 为“com.google.gms.google-services”的插件

    我第一次在我的应用程序 离子平台 中使用谷歌服务 我正在关注这个doc https developers google com cloud messaging android start 在构建我的应用程序时 我收到以下错误消息 请帮忙 谢
  • 如何在复制过程中过滤数据并只向用户提供他自己的文档?

    我需要在客户端同步来自 CouchDB 和 PouchDB 的服务器数据 每个用户都有自己的数据 当他在线时 该数据正在更新 如何在复制过程中过滤数据并只向用户提供他自己的文档 这对我来说是安全问题 在您开始拥有大量用户 数千个 之前 为每
  • 如何获取(内置)麦克风的硬件信息?

    当用户在我的网站上录制音频文件时 是否可以读取 内置 麦克风的硬件信息 至少是名称 JavaScript 可以做到这一点吗 或者有其他方法可以解决这个问题吗 我在网上搜索但只能找到用 JavaScript 录制的脚本 新版本 可在 Fire