如何通过JavaScript代码获得Firefox浏览器的用户媒体权限(相机和麦克风)?

时间:2018-11-30 06:37:08

标签: javascript google-chrome firefox getusermedia

以下代码在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的有效值。”

enter image description here

对于相机: 出现错误:

  

TypeError:“ PermissionDescriptor'camera'的'name'成员不是   枚举PermissionName的有效值。“

有人知道如何在Firefox浏览器中获取摄像头和麦克风的用户媒体权限状态吗?

谢谢。

2 个答案:

答案 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