以下代码在chrome浏览器中正常运行:
对于麦克风:
navigator.permissions.query({name: 'microphone'})
.then((permission) => {
console.log("microphone state", permission.state);
}).catch((error) => {
console.log('Got error :', error);
})
对于相机:
navigator.permissions.query({name: 'camera'})
.then((permission) => {
console.log("camera state", permission.state);
}).catch((error) => {
console.log('Got error :', error);
})
上面的相同代码在Firefox浏览器中无法正常工作,出现以下错误:
对于麦克风: 出现错误:
TypeError:PermissionDescriptor“麦克风”的“名称”成员不是 枚举PermissionName的有效值。”
对于相机: 出现错误:
TypeError:“ PermissionDescriptor'camera'的'name'成员不是 枚举PermissionName的有效值。“
有人知道如何在Firefox浏览器中获取摄像头和麦克风的用户媒体权限状态吗?
谢谢。
答案 0 :(得分:1)
根据GitHub上的this问题(特别是this评论),Firefox根本不支持摄像头和麦克风。
有一些reasons可能太技术性了,因此您正在尝试实现的功能暂时无法实现(直到Firefox知道了)
最诚挚的问候<3
答案 1 :(得分:0)
最近我做了类似的事情,并且可以在Firefox上运行:
navigator.mediaDevices.getUserMedia( { audio: true, video: false } )
.then( ( stream ) => {
// microphone available
},
e => {
// microphone not available
} );
来自here。