mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 17:12:13 -06:00
xhr preload is not gapless
This commit is contained in:
parent
8a59b40c53
commit
4e986e5cd1
|
@ -588,10 +588,10 @@ function MPlayer() {
|
||||||
setTimeout(fader, 10);
|
setTimeout(fader, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
r.preload = function (url) {
|
r.preload = function (url, full) {
|
||||||
url = mpl.acode(url);
|
url = mpl.acode(url);
|
||||||
url += url.indexOf('?') < 0 ? '?cache' : '&cache';
|
url += url.indexOf('?') < 0 ? '?cache' : '&cache';
|
||||||
if (mpl.fullpre)
|
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 drop(x) {
|
||||||
|
@ -1045,7 +1045,8 @@ function playpause(e) {
|
||||||
var mpui = (function () {
|
var mpui = (function () {
|
||||||
var r = {},
|
var r = {},
|
||||||
nth = 0,
|
nth = 0,
|
||||||
preloaded = null;
|
preloaded = null,
|
||||||
|
fpreloaded = null;
|
||||||
|
|
||||||
r.progress_updater = function () {
|
r.progress_updater = function () {
|
||||||
timer.add(updater_impl, true);
|
timer.add(updater_impl, true);
|
||||||
|
@ -1083,17 +1084,26 @@ var mpui = (function () {
|
||||||
// preload next song
|
// preload next song
|
||||||
if (mpl.preload && !mp.loading && preloaded != mp.au.src) {
|
if (mpl.preload && !mp.loading && preloaded != mp.au.src) {
|
||||||
var pos = mp.au.currentTime,
|
var pos = mp.au.currentTime,
|
||||||
len = mp.au.duration;
|
len = mp.au.duration,
|
||||||
|
rem = pos > 0 ? len - pos : 999,
|
||||||
|
full = null;
|
||||||
|
|
||||||
if (pos > 0 && pos > len - (mpl.fullpre ? 40 : 20)) {
|
if (rem < (mpl.fullpre ? 7 : 20)) {
|
||||||
preloaded = mp.au.src;
|
preloaded = fpreloaded = mp.au.src;
|
||||||
|
full = false;
|
||||||
|
}
|
||||||
|
else if (rem < 40 && mpl.fullpre && fpreloaded != mp.au.src) {
|
||||||
|
fpreloaded = mp.au.src;
|
||||||
|
full = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (full !== null)
|
||||||
try {
|
try {
|
||||||
mp.preload(mp.tracks[mp.order[mp.order.indexOf(mp.au.tid) + 1]]);
|
mp.preload(mp.tracks[mp.order[mp.order.indexOf(mp.au.tid) + 1]], full);
|
||||||
}
|
}
|
||||||
catch (ex) {
|
catch (ex) {
|
||||||
console.log("preload failed", ex);
|
console.log("preload failed", ex);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mp.au.paused)
|
if (mp.au.paused)
|
||||||
|
|
Loading…
Reference in a new issue