JS,navigator.mediaDevices.getUserMedia() 不工作
JS, navigator.mediaDevices.getUserMedia() not working
我正在尝试从客户的网络摄像头获取视频。我写了代码,没有出现错误。但是,当我尝试获取视频时,没有显示任何内容(在 Google Chrome 中)或仅显示视频的一帧(在 Mozilla Firefox 中)。我之前测试过它,它工作得很好,但现在,我不知道为什么,它不起作用。我搜索了它,但一无所获。非常感谢任何帮助。谢谢
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html, body {
height: 100%;
}
body {
margin: 0;
}
video {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: -1;
}
</style>
</head>
<body>
<button id="shareBtn">Share Video</button>
<script>
async function startCapture(displayMediaOptions) {
let stream = null;
try {
stream = await navigator.mediaDevices.getUserMedia(displayMediaOptions);
video = document.createElement("video");
video.srcObject = stream;
document.body.appendChild(video);
} catch(err) {
console.error(err);
}
}
document.getElementById("shareBtn").addEventListener("click", () => {
startCapture({ video:true });
});
</script>
</body>
</html>
您的代码可以正常工作,但视频已暂停。
在您的代码中添加 1 行:
<script>
async function startCapture(displayMediaOptions) {
let stream = null;
try {
stream = await navigator.mediaDevices.getUserMedia(displayMediaOptions);
video = document.createElement("video");
video.srcObject = stream;
video.setAttribute('autoplay', true); /* THIS */
document.body.appendChild(video);
} catch(err) {
console.error(err);
}
}
document.getElementById("shareBtn").addEventListener("click", () => {
startCapture({ video:true });
});
</script>
我正在尝试从客户的网络摄像头获取视频。我写了代码,没有出现错误。但是,当我尝试获取视频时,没有显示任何内容(在 Google Chrome 中)或仅显示视频的一帧(在 Mozilla Firefox 中)。我之前测试过它,它工作得很好,但现在,我不知道为什么,它不起作用。我搜索了它,但一无所获。非常感谢任何帮助。谢谢
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html, body {
height: 100%;
}
body {
margin: 0;
}
video {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: -1;
}
</style>
</head>
<body>
<button id="shareBtn">Share Video</button>
<script>
async function startCapture(displayMediaOptions) {
let stream = null;
try {
stream = await navigator.mediaDevices.getUserMedia(displayMediaOptions);
video = document.createElement("video");
video.srcObject = stream;
document.body.appendChild(video);
} catch(err) {
console.error(err);
}
}
document.getElementById("shareBtn").addEventListener("click", () => {
startCapture({ video:true });
});
</script>
</body>
</html>
您的代码可以正常工作,但视频已暂停。 在您的代码中添加 1 行:
<script>
async function startCapture(displayMediaOptions) {
let stream = null;
try {
stream = await navigator.mediaDevices.getUserMedia(displayMediaOptions);
video = document.createElement("video");
video.srcObject = stream;
video.setAttribute('autoplay', true); /* THIS */
document.body.appendChild(video);
} catch(err) {
console.error(err);
}
}
document.getElementById("shareBtn").addEventListener("click", () => {
startCapture({ video:true });
});
</script>