Steps to reproduce
This is a feature request to match the implementations in Chrome and Firefox.
When a video (when using MSE) pauses because of lack of data, the browser fires a
waiting event. On Chrome and Firefox, this event is fired immediately after stopping. This allows us to immediately react, and in our case, jump any gaps. This is important to provide a smooth experience to users.
However, on IE/Edge, the
waiting event fires at least 3 seconds after stopping. This large delay gives a bad user experience. There is also no other way to determine when the video pauses because of lack of content. Meaning we would need to poll the
currentTime to jump the gap quickly. (see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11459883/ about the problem with polling
On a related note, the video pauses about 0.5 seconds before the buffered range end. If the buffered ranges are reported as [0-10], it will pause at 9.5 seconds. On Chrome and Firefox, the video pauses within one frame (0.1 sec) of the buffered ranges. It would be really helpful if the buffered ranges were reported accurately and represented the actual playable ranges.
This demo loads up 10 seconds of video using MSE and displays stats about it. The “Status” field is set to “playing” once we call
play() and is set to “Waiting” when we get our first
waiting event from the browser.
Comments and activity
- Microsoft Edge Team
Changed Assigned To to “James M.”
Changed Assigned To to “Venkat K.”
Changed Assigned To from “Venkat K.” to “Nishant N.”
Changed Assigned To from “Nishant N.” to “Matthew H.”
Changed Assigned To to “Stephen E.”
Changed Assigned To from “Stephen E.” to “Matthew H.”
Changed Status to “Confirmed”
Changed Status from “Confirmed” to “Fixed”
Changed Status from “Fixed” to “Fixed, not yet flighted”