Created
June 22, 2018 16:41
-
-
Save peaBerberian/2e36de27591ca94bf44fb842dd1bb7ec to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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