element curentTime w/mediaStream

by jib1

HTML

<script src="https://webrtchacks.github.io/adapter/adapter-latest.js"></script>
<video id="video" width="160" height="120" autoplay></video><br>
<div id="div"></div>

JavaScript

let base = performance.now();
const now = () => (performance.now() - base).toFixed();
const console = {log: msg => div.innerHTML += `${now()}: ${msg}<br>`};
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

(async () => {
  try {
    const stream = await navigator.mediaDevices.getUserMedia({video: true});
    const empty = new MediaStream();
    console.log("Setting srcObject to new MediaStream()");
    video.srcObject = empty;
    await wait(1000);
    console.log(`Calling play() ${video.currentTime}`);
    video.play();
    // post-patch: currentTime starts updating and "timeupdate" events start firing
    video.ontimeupdate = () => console.log(`Got timeupdate ${video.currentTime}`);
    console.log(`Waiting ${video.currentTime}`);
    await wait(1000);
    console.log(`Waiting ${video.currentTime}`);
    await wait(1000);
    console.log(`Waiting ${video.currentTime}`);
    await wait(1000);
    console.log(`Waiting ${video.currentTime}`);
    await wait(1000);
    console.log("Calling stream.addTrack(videoTrack)");
    video.srcObject.addTrack(stream.getVideoTracks()[0]);
    // pre-patch: currentTime starts updating and "timeupdate" events start firing    
  } catch(e) {
    console.log(e);
  }
})();