Screen capture
html
JavaScript
<video id="video" height="400" autoplay></video>
<button id="toggle">toggle</button>
<script>
(async () => {
let capture = false;
const videoElem = document.querySelector("#video");
async function toggleCapture(event) {
if (capture) {
videoElem.srcObject.getTracks().forEach((track) => track.stop());
videoElem.srcObject = null;
capture = false;
} else {
try {
let captureStream = await navigator.mediaDevices.getDisplayMedia({
video: {
cursor: "none",
},
audio: true,
});
videoElem.srcObject = captureStream;
// Dump debug
for (const track of videoElem.srcObject.getVideoTracks()) {
console.info("Track");
console.info(track);
console.info("Track settings:");
console.info(JSON.stringify(track.getSettings(), null, 2));
console.info("Track constraints:");
console.info(JSON.stringify(track.getConstraints(), null, 2));
}
} catch (err) {
console.error("Error: " + err);
}
capture = true;
}
}
document
.querySelector("#toggle")
.addEventListener("click", toggleCapture, false);
})();
</script>