Skip to content

Instantly share code, notes, and snippets.

@peaBerberian
Created June 22, 2018 16:41
Show Gist options
  • Select an option

  • Save peaBerberian/2e36de27591ca94bf44fb842dd1bb7ec to your computer and use it in GitHub Desktop.

Select an option

Save peaBerberian/2e36de27591ca94bf44fb842dd1bb7ec to your computer and use it in GitHub Desktop.
var pb = function prettifyBuffered(buffered) {
var str = "";
var start, end, fixedStart, fixedEnd, fixedDuration, nextStart, fixedDiff;
for (var i = 0; i < buffered.length; i++) {
start = buffered.start(i);
end = buffered.end(i);
fixedStart = start.toFixed(2);
fixedEnd = end.toFixed(2);
fixedDuration = (end - start).toFixed(2);
str += `|${fixedStart}----(${fixedDuration})----|${fixedEnd}`;
if (i < buffered.length - 1) {
nextStart = buffered.start(i + 1);
fixedDiff = (nextStart - end).toFixed(2);
str += ` <${fixedDiff}> `;
}
}
return str;
};
var fp = function findPosition(position, buffered) {
var start, end;
for (var i = 0; i < buffered.length; i++) {
start = buffered.start(i);
end = buffered.end(i);
if (position >= start && position < end) {
var rep = {
pos: position,
current: {
start: start,
end: end,
},
prev: i === 0 ? null : {
start: buffered.start(i - 1),
end: buffered.end(i - 1),
},
next: i >= buffered.length -1 ? null : {
start: buffered.start(i + 1),
end: buffered.end(i + 1),
},
};
rep.diffWithNext = rep.next ?
rep.next.start - rep.pos : null;
rep.diffWithPrev = rep.prev ?
rep.pos - rep.prev.end : null;
return rep;
} else if (position < start) {
var rep = {
pos: position,
current: null,
prev: i === 0 ? null : {
start: buffered.start(i - 1),
end: buffered.end(i - 1),
},
next: {
start: buffered.start(i),
end: buffered.end(i),
},
};
rep.diffWithNext = rep.next ?
rep.next.start - rep.pos : null;
rep.diffWithPrev = rep.prev ?
rep.pos - rep.prev.end : null;
return rep;
}
}
var rep = buffered.length ? {
pos: position,
current: null,
prev: {
start: buffered.start(buffered.length - 1),
end: buffered.end(buffered.length - 1),
},
next: null,
diffWithNext: null,
} : {
pos: position,
current: null,
prev: null,
next: null,
diffWithNext: null,
}
rep.diffWithPrev = rep.prev ?
rep.pos - rep.prev.end : null;
return rep;
};
console.log(
pb(player.getVideoElement().buffered),
"\n",
fp(player.getPosition(), player.getVideoElement().buffered)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment