NotReadableError: Failed to allocate videosource

NotReadableError: Failed to allocate videosource

当我尝试执行以下代码并且 select 我的笔记本电脑的相机时,我在 Firefox 51 中收到此错误:

navigator.getMedia = (navigator.getUserMedia ||
  navigator.webkitGetUserMedia ||
  navigator.mediaDevices.getUserMedia ||
  navigator.msGetUserMedia);

navigator.getMedia({
    video: true,
    audio: false
  },
  function(stream) {
    if (navigator.mozGetUserMedia) {
      video.mozSrcObject = stream;
    } else {
      var vendorURL = window.URL || window.webkitURL;
      video.src = vendorURL.createObjectURL(stream);
    }
    video.play();
  },
  function(err) {
    console.log("An error occured! " + err);
  }
);

错误:

NotReadableError: Failed to allocate videosource

有人可以详细说明这是什么意思吗?我的网络摄像头坏了吗?我昨天从脚本中使用它没有问题。它没有分配给其他应用程序。

请确保您的摄像头未被其他应用程序(chrome,ie 或任何其他浏览器)使用。 我浪费了半天的时间寻找解决方案,最后发现我的相机被其他应用程序占用了。

NotReadableError 是 Firefox 在允许但无法访问网络摄像头时抛出的符合规范的错误。

这种情况最常发生在 Windows 上,因为网络摄像头已被另一个应用程序使用。 Firefox 将在 Windows 和 Mac 即使只有 Windows 个进程可以独占访问网络摄像头。

错误可能由于其他原因而发生:

Although the user granted permission to use the matching devices, a hardware error occurred at the operating system, browser, or Web page level which prevented access to the device.

Chrome 会抛出 TrackStartError。它还会为 reasons 抛出它。 Chrome 个选项卡可以共享同一设备。

来源:common getUserMedia() errors .

Can someone elaborate what this means? Is my webcam broken? I used it from the script just yesterday without problems. It's not allocated to other application.

我遇到了完全相同的问题!

真丢脸!因为,与此同时我添加了 beforeunload event, including the event.preventDefault as reported in the example.

删除此 event.preventDefault 后,一切正常 - 正如预期的那样。

我在 Windows 10 上遇到了同样的问题,没有其他应用程序使用我的视频设备。问题是在 Windows 10 中的设置 -> 应用程序权限(在左栏中)有一个麦克风和摄像头设置(允许应用程序访问您的 mic/camera)需要打开。在此设置下方的应用列表中找不到您的浏览器并不重要,只需在此处启用它即可。

Chromium 而非 Firefox 网络浏览器显示消息 getUserMedia() error: NotReadableError。我还注意到 WebRTC 示例使用 getUserMedia 功能但没有麦克风访问权限在 Chromium 中正常工作。

事实上,我必须确保我的麦克风已启用并且 select Chromium / Chrome 设置中的正确麦克风。然后具有音频和视频访问权限的 WebRTC 工作正常。

如果不是麦克风问题,也可能是网络摄像头问题,因此您必须确保您的网络摄像头已启用并且 select在 Chromium / Chrome 设置中正确设置。

请注意,一次只能有一个应用程序可以使用网络摄像头/麦克风。

如果你在 2019 年 12 月之后或 12 月来到这里,我想告诉你一些事情

  1. 此功能 navigator.getUserMedia() 已弃用。
  2. 此功能在浏览器中的后续版本将是 window.navigator.mediaDevices.getUserMedia
  3. 新特性在很多浏览器中可能不支持,因为前几天还处于实验阶段chrome发布了chrome79chrome79还不支持对我来说,除了 chrome 和 IE,它在我的所有浏览器中都能正常工作
  4. 这是一个快速代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Jello</title>
    <style>
        video{
            width: 30%;
            height: auto;
        }
    </style>
</head>
<body>
    <video autoplay controls></video>
    <button>Open Cam</button>
    <script>
    function getCam(){
        window.navigator.mediaDevices.getUserMedia({video:true}).then((stream)=>{
            // let videoTrack = stream.getVideoTracks()[0];
            // console.log(videoTrack);
            document.querySelector("video").srcObject = stream;
        }).catch(err=> console.log(err.name))
    }
    // getCam();
    document.querySelector("button").addEventListener("click", getCam);
    </script>
</body>
</html>

编辑 => 如果您在 windows 10 中使用,请确保允许 chrome 访问您的麦克风和摄像头,否则它将无法工作

我到处寻找解决方案,终于找到了这个。基本上在我的情况下,相机权限已打开,Mozilla firefox 可以访问网络摄像头,但 chrome 不能。事实上,chrome 的旧版本如 74.x 可以使用网络摄像头,但最新的 84.x 不能。我认为问题出在 chrome 但最后,我尝试从 windows 10 设置打开我的麦克风访问。现在 chrome 也可以访问网络摄像头了。

解决方案:请检查您的摄像头和麦克风访问是否都已从 windows 设置中打开。

NonReadableError: Could not start video source 也会在会话期间抛出(不仅限于本地!)如果相机更改发生得太快。

我还不知道解决方案,但我会在得到解决方案后相应地编辑我的 post。

这个问题还有另一种解决方法。我的相机在 Firefox 和 Skype 中不工作,但在相机应用程序中工作。

解决方案是允许“经典应用”访问相机(我不知道它在英语中是怎么称呼的)。它在同一个地方可以为所有其他应用程序提供或获取访问权限,只需在它们下面确保经典应用程序也被允许。不仅仅是为有问题的应用程序提供,比如 Firefox,所有经典应用程序都需要启用它

Tl;博士; - 检查设备驱动程序是否有任何“有趣”的相机驱动程序

我刚刚花了一个小时与一个不断遇到此错误的用户通话,无论我们尝试了什么,包括记下这个问题的每个答案。我们找到了另一个原因,我现在将在这里添加,让下一个可怜的灵魂偶然发现这个。

在他的例子中,他安装了一个名为 ChromaCam 的应用程序(我几乎在诊断的第一步就退出了)并且这个应用程序安装了一个名为“Personify Virtual Camera Universal”的设备驱动程序网络搜索该驱动程序名称将显示一大群人遇到相机问题,解决方案似乎有些通用:卸载设备驱动程序。他甚至不知道 ChromaCam 是什么,也不知道为什么它会出现在他的笔记本电脑上,所以我们删除了它,卸载了驱动程序,一切都开始正常运行了!

另一个线程中的另一个人遇到了类似的问题,对他来说,这是一些自定义 HP(??-我想他是这么说的)相机驱动程序,而不是 Windows 会使用的普通通用驱动程序已选择。