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);
}
})();