mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 01:22:13 -06:00
general preload improvements
This commit is contained in:
parent
418c2166cc
commit
2a16c150d1
|
@ -471,6 +471,19 @@ var mpl = (function () {
|
||||||
navigator.mediaSession.playbackState = "paused";
|
navigator.mediaSession.playbackState = "paused";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
r.unbuffer = function (url) {
|
||||||
|
for (var a = 0; a < 2; a++) {
|
||||||
|
var au = a ? mp.au_native2 : mp.au_ogvjs2;
|
||||||
|
if (au && (!url || au.src == url)) {
|
||||||
|
au.src = '';
|
||||||
|
au.load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!url)
|
||||||
|
mpl.preload_url = null;
|
||||||
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -592,22 +605,25 @@ function MPlayer() {
|
||||||
url = mpl.acode(url);
|
url = mpl.acode(url);
|
||||||
url += url.indexOf('?') < 0 ? '?cache' : '&cache';
|
url += url.indexOf('?') < 0 ? '?cache' : '&cache';
|
||||||
mpl.preload_url = full ? url : null;
|
mpl.preload_url = full ? url : null;
|
||||||
|
var t0 = Date.now();
|
||||||
if (full)
|
if (full)
|
||||||
return fetch(url).then(function (x) {
|
return fetch(url).then(function (x) {
|
||||||
var rd = x.body.getReader(), n = 0;
|
var rd = x.body.getReader(), n = 0;
|
||||||
function drop(x) {
|
function spd() {
|
||||||
if (mpl.preload_url !== url) {
|
return humansize(n / ((Date.now() + 1 - t0) / 1000)) + '/s';
|
||||||
console.log('xhr-preload abandoned at ' + n + ' bytes for ' + url);
|
|
||||||
return rd.cancel();
|
|
||||||
}
|
}
|
||||||
|
function drop(x) {
|
||||||
|
if (x && x.done)
|
||||||
|
return console.log('xhr-preload finished, ' + spd());
|
||||||
|
|
||||||
if (x && x.value && x.value.length)
|
if (x && x.value && x.value.length)
|
||||||
n += x.value.length;
|
n += x.value.length;
|
||||||
|
|
||||||
if (n >= 128 * 1024 * 1024)
|
if (mpl.preload_url !== url || n >= 128 * 1024 * 1024) {
|
||||||
return console.log('interrupting preload at 128 MiB for ' + url);
|
console.log('xhr-preload aborted at ' + Math.floor(n / 1024) + ' KiB, ' + spd() + ' for ' + url);
|
||||||
|
return rd.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
if (!x || !x.done)
|
|
||||||
return rd.read().then(drop);
|
return rd.read().then(drop);
|
||||||
}
|
}
|
||||||
drop();
|
drop();
|
||||||
|
@ -1515,6 +1531,10 @@ function play(tid, is_ev, seek, call_depth) {
|
||||||
mp.au.src = url;
|
mp.au.src = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
mpl.unbuffer(url);
|
||||||
|
}, 500);
|
||||||
|
|
||||||
mp.au.tid = tid;
|
mp.au.tid = tid;
|
||||||
mp.au.volume = mp.expvol(mp.vol);
|
mp.au.volume = mp.expvol(mp.vol);
|
||||||
var oid = 'a' + tid;
|
var oid = 'a' + tid;
|
||||||
|
@ -5003,8 +5023,8 @@ function reload_mp() {
|
||||||
for (var a = plays.length - 1; a >= 0; a--)
|
for (var a = plays.length - 1; a >= 0; a--)
|
||||||
plays[a].parentNode.innerHTML = '-';
|
plays[a].parentNode.innerHTML = '-';
|
||||||
|
|
||||||
|
mpl.unbuffer();
|
||||||
mp = new MPlayer();
|
mp = new MPlayer();
|
||||||
mpl.preload_url = null;
|
|
||||||
setTimeout(pbar.onresize, 1);
|
setTimeout(pbar.onresize, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue