JS视频| DOMException:无法启动视频源

时间:2020-03-24 19:02:49

标签: javascript

我想使用JS从网络摄像头获取视频,但没有素材。

消息:

DOMException:无法启动视频源

App.js

const video = document.getElementById("video");

function startVideo() {
  navigator.getUserMedia(
    {
      video: {}
    },
    stream => (video.srcObject = stream),
    err => console.log(err)
  );
}

startVideo();

index.html

...
<body>
    <video id="video" width="720" height="540" autoplay muted></video>
</body>
...

感谢您的帮助

5 个答案:

答案 0 :(得分:1)

TLDR:我已经测试过您的代码,必须对其进行一些更改:

https://codepen.io/puradawid/pen/PoqxzPQ

问题似乎出在这里:

navigator.getUserMedia({
    video: {}
  },
  stream => { video.srcObject = stream },
  err => console.log(err)
);

关于docsnavigator.getUserMedia已过时,并且有navigator.mediaDevices.getUserMedia支持它。但是,更改它并不能解决正确的问题,这就是您的回调函数。此方法返回受Promise控制的.then(),因此对其进行更改可让我在Codepen中看到我的脸:

navigator.mediaDevices.getUserMedia({
    video: true
}).then(
  stream => (video.srcObject = stream),
  err => console.log(err)
);

答案 1 :(得分:0)

在Windows 10中,转到设置->隐私->应用程序权限(左侧)->麦克风->启用“允许应用程序访问您的麦克风” 之后,使用您的JS程序重试...。它将起作用!Error solved!! DOM Exception Could not start video source

答案 2 :(得分:0)

如果其他任何人遇到此问题,则没有其他帮助。确保您的相机尚未被其他软件/浏览器声明/使用。

答案 3 :(得分:0)

还要在网站和主机Web服务器配置上查看Feature-Policy HTTP标头,并确保允许访问摄像机。

答案 4 :(得分:0)

如果有人遇到这样的错误并且您正在使用笔记本电脑。您可以尝试在两个方向弯曲您的笔记本电脑显示器。有时电缆会松动。这对我有帮助。