Using this code in the console: (async function() { const vid = document.createElement('video'); const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true }); stream.getVideoTracks()[0].enabled = false; ['timeupdate', 'loadedmetadata'].forEach(evtName => vid.addEventListener(evtName, () => console.log(evtName))); document.body.appendChild(vid); vid.srcObject = stream; })(); I expect that loadedmetadata should still occur for a stream with a disabled video track. 'loadedmetadata' is printed to the console in Chrome, Firefox, and Edge for this code (Edge code modified to not use await). I'd also expect this to work when the <video> is muted as well, although I discovered that part was not necessary to repro loadedmetadata not getting emitted.
<rdar://problem/33188613>
*** Bug 174408 has been marked as a duplicate of this bug. ***