如何通过JavaScript代码获取Firefox浏览器的用户媒体权限(摄像头和麦克风)?

ans*_*eep 7 javascript firefox google-chrome getusermedia

下面的代码在chrome浏览器中可以正常运行:

对于麦克风:

 navigator.permissions.query({name: 'microphone'})
    .then((permission) => {
        console.log("microphone state", permission.state);
    }).catch((error) => {
        console.log('Got error :', error);
    })
Run Code Online (Sandbox Code Playgroud)

对于相机:

 navigator.permissions.query({name: 'camera'})
    .then((permission) => {
        console.log("camera state", permission.state);
    }).catch((error) => {
        console.log('Got error :', error);
    })
Run Code Online (Sandbox Code Playgroud)

上面的相同代码在 Firefox 浏览器中不起作用,我收到以下错误:

对于麦克风: 出现错误:

TypeError:“PermissionDescriptor‘麦克风’的‘名称’成员不是枚举 PermissionName 的有效值。”

在此输入图像描述

对于相机:出现错误:

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

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

谢谢。

uru*_*ruk 6

我最近做了类似的事情,它在 Firefox 上有效:

navigator.mediaDevices.getUserMedia( { audio: true, video: false } )
   .then( ( stream ) => {
        // microphone available
   },
   e => {
        // microphone not available
   } );
Run Code Online (Sandbox Code Playgroud)

取自这里


Ste*_* T. 3

根据GitHub 上的这个问题(特别是这个评论),Firefox 根本不支持摄像头和麦克风。

造成这种情况的原因有一些,可能技术性太强,因此您尝试实现的此功能目前无法实现(直到 Firefox 解决)

最好的问候<3