我想使用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>
...
感谢您的帮助
答案 0 :(得分:1)
TLDR:我已经测试过您的代码,必须对其进行一些更改:
https://codepen.io/puradawid/pen/PoqxzPQ
问题似乎出在这里:
navigator.getUserMedia({
video: {}
},
stream => { video.srcObject = stream },
err => console.log(err)
);
关于docs,navigator.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程序重试...。它将起作用!
答案 2 :(得分:0)
如果其他任何人遇到此问题,则没有其他帮助。确保您的相机尚未被其他软件/浏览器声明/使用。
答案 3 :(得分:0)
还要在网站和主机Web服务器配置上查看Feature-Policy HTTP标头,并确保允许访问摄像机。
答案 4 :(得分:0)
如果有人遇到这样的错误并且您正在使用笔记本电脑。您可以尝试在两个方向弯曲您的笔记本电脑显示器。有时电缆会松动。这对我有帮助。