如何使用JavaScript检测系统连接麦克风
How to detect that system connected with microphone using JavaScript
我使用getUserMedia()
进行音频录制,它工作正常,但有一个问题。
我想在开始录音前显示一个消息,说明任何麦克风是否连接到系统。
为此,我使用了以下代码并将其运行到chrome中,但它不能正常工作。
if(navigator.getUserMedia || navigator.webkitGetUserMedia)
{
alert("Microphone is connected with your system");
} else {
alert("Microphone is not connected with your system");
}
当麦克风未连接时,上面的代码也会给出"麦克风与您的系统连接"的消息。
所以请建议我一个更好的方法来检测麦克风使用JavaScript在任何浏览器
检测这些功能是否存在并不检测硬件麦克风是否存在。它只检测浏览器是否有这样做的API。
通过测试的浏览器不需要将物理麦克风插入麦克风插孔。它只是一个更新的浏览器。测试失败的浏览器可能有麦克风,但是是不包含API的旧浏览器。
而且,至少getUserMedia函数是异步的,所以任何依赖于使用音频或视频的代码都必须放在回调函数中,而不是主脚本中。
关于如何为音频/视频输入编写跨浏览器代码的示例,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getUserMedia。
像这样:
function success(stream) {
// we have it
}
function fail(error) {
console.log(error);
if (error === 'NO_DEVICES_FOUND') {
// NO_DEVICES_FOUND (no microphone or microphone disabled)
}
}
navigator.getUserMedia({ audio: true }, success, fail);
试试这个
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
// Code for success
}).catch(err => {
if(err.includes("NotFoundError: Requested device not found"))
alert("Mic not detected")
else alert("Error recording audio")
})
如果麦克风未被检测到或未插入意味着catch语句将被执行。你可以在这里显示你的错误信息
你可以使用这个链接
我使用了这个方法
developer.mozilla.org相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何使用密码检测网络中的状态连接
- 如何处理node.js节点mongodb中的连接和查询队列
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- Twilio-显示所有连接参与者的远程参与者视频
- 操作放置在画布上的元素之间的连接
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- jQuery UI可排序-多连接列表拖动
- 如何使用offer/answer交换来自两个对等连接的流
- 在Qualtrics中,介绍如何动态连接两个滑块
- 使用优化器在慢速连接上加载main.js时需要js超时
- 如果连接类型为none,则Javascript Function Only警报
- GTK百老汇支持同时连接
- 在node.js中写入ECONNRESET错误和套接字连接检查
- 如何将所有JS文件连接到一个文件夹中
- 在cordova android应用程序中连接数据库
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 检查摄像头或麦克风是否已连接到计算机
- 如何使用JavaScript检测系统连接麦克风