Async gDM

by jib1

HTML

<button id="button">Present!</button><br>
<div id="div"></div>
<video id="video" autoplay></video>

JavaScript

const console = {log: msg => div.innerHTML += `${msg}<br>`};

button.onclick = async () => {
  try {
    video.srcObject = await navigator.mediaDevices.getDisplayMedia();
    const {width, height} = video.srcObject.getVideoTracks()[0].getSettings();
    console.log(`${width} x ${height}`);
    for (const track of video.srcObject.getTracks()) {
      track.onended = () => console.log(`${track.kind} track ended`);
    }
  } catch(e) {
    console.log(e);
  }
};