@videojs/http-streaming
Version:
Play back HLS and DASH with Video.js, even where it's not natively supported
51 lines (41 loc) • 1.27 kB
JavaScript
/**
* Provides a compatibility layer between Video.js 7 and 8 API changes for VHS.
*/
import videojs from 'video.js';
/**
* Delegates to videojs.obj.merge (Video.js 8) or
* videojs.mergeOptions (Video.js 7).
*/
export function merge(...args) {
const context = videojs.obj || videojs;
const fn = context.merge || context.mergeOptions;
return fn.apply(context, args);
}
/**
* Delegates to videojs.time.createTimeRanges (Video.js 8) or
* videojs.createTimeRanges (Video.js 7).
*/
export function createTimeRanges(...args) {
const context = videojs.time || videojs;
const fn = context.createTimeRanges || context.createTimeRanges;
return fn.apply(context, args);
}
/**
* Converts provided buffered ranges to a descriptive string
*
* @param {TimeRanges} buffered - received buffered time ranges
*
* @return {string} - descriptive string
*/
export function bufferedRangesToString(buffered) {
if (buffered.length === 0) {
return 'Buffered Ranges are empty';
}
let bufferedRangesStr = 'Buffered Ranges: \n';
for (let i = 0; i < buffered.length; i++) {
const start = buffered.start(i);
const end = buffered.end(i);
bufferedRangesStr += `${start} --> ${end}. Duration (${end - start})\n`;
}
return bufferedRangesStr;
}