Note: This feature is available in Dedicated Web Workers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The BufferedChangeEvent() constructor of the BufferedChangeEvent interface creates a new BufferedChangeEvent object instance.
new BufferedChangeEvent(type, options)typeA string representing the type of event. In the case of BufferedChangeEvent this is always bufferedchange.
options OptionalAn object that, in addition to the properties defined in Event(), has the following properties:
Note: Although the spec marks options as optional, Safari (currently the only implementation) throws a TypeError if the argument is omitted entirely. Passing an empty object ({}) works correctly.
addedRanges OptionalA TimeRanges object representing the time ranges added to the buffer.
removedRanges OptionalA TimeRanges object representing the time ranges removed from the buffer.
A new BufferedChangeEvent object instance.
The BufferedChangeEvent() constructor isn't generally called manually. When a ManagedSourceBuffer's bufferedchange event fires (meaning its buffered ranges change), the browser will construct a BufferedChangeEvent object to use as the event object.
The event's properties describe what changed:
sourceBuffer.addEventListener("bufferedchange", (event) => {
console.log(event instanceof BufferedChangeEvent); // true
console.log(event.type); // "bufferedchange"
console.log(event.addedRanges); // TimeRanges — ranges added to the buffer
console.log(event.removedRanges); // TimeRanges — ranges removed from the buffer
});