Javascript 获取includes不是一个意外的函数
我想检查麦克风是否已连接,我们可以像这样录制音频:Javascript 获取includes不是一个意外的函数,javascript,Javascript,我想检查麦克风是否已连接,我们可以像这样录制音频: //检查麦克风 navigator.mediaDevices.getUserMedia({audio:true}) 。然后(流=>{ //如果麦克风可用,则编码 console.log(“麦克风工作”); }).catch(错误=>{ console.log(错误) 如果(错误包括(“未找到请求的设备”)){ console.log(“未连接麦克风”); }else if(错误包括(“权限被拒绝”)){ log('用户拒绝记录权限'); }否
//检查麦克风
navigator.mediaDevices.getUserMedia({audio:true})
。然后(流=>{
//如果麦克风可用,则编码
console.log(“麦克风工作”);
}).catch(错误=>{
console.log(错误)
如果(错误包括(“未找到请求的设备”)){
console.log(“未连接麦克风”);
}else if(错误包括(“权限被拒绝”)){
log('用户拒绝记录权限');
}否则{
}
});代码>如果err是未定义的
,您将得到一个TypeError。检查其是否存在,如:
if(err&&err.includes(“未找到请求的设备”){}
这是因为err
实际上是一个对象,而对象没有原型includes
。检查错误类型的推荐方法是实际检查err.name
:
abortorror
NotAllowedError
NotFoundError
NotReadableError
过度约束错误
SecurityError
TypeError
//检查麦克风
navigator.mediaDevices.getUserMedia({audio:true})
。然后(流=>{
//如果麦克风可用,则编码
console.log(“麦克风工作”);
}).catch(错误=>{
开关(错误名称){
案例“NotFoundError”:
console.log(“未连接麦克风”);
打破
案例“NotAllowedError”:
log('用户拒绝记录权限');
打破
}
});代码>err
不会是未定义的
我的错我没意识到它不是字符串
谢谢。。。您是否建议只勾选==
而不勾选包含的内容
。似乎消息总是精确的文本…@foxer我已经更新了我的答案:检查err.name
,实际上更安全,因为这在不同浏览器中是一致的。消息本身可能因浏览器而异。