diff options
| author | Omar Roth <omarroth@hotmail.com> | 2019-01-28 22:36:27 -0600 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2019-01-28 22:36:27 -0600 |
| commit | ff09a7255ac03dfd7d828aaaf872b263c4c9cee4 (patch) | |
| tree | 69f352e9bd1791729706fcd3a2c8849d75ba2fe8 | |
| parent | 26b720036039f57e3341406ddaa351b0c93a132a (diff) | |
| download | invidious-ff09a7255ac03dfd7d828aaaf872b263c4c9cee4.tar.gz invidious-ff09a7255ac03dfd7d828aaaf872b263c4c9cee4.tar.bz2 invidious-ff09a7255ac03dfd7d828aaaf872b263c4c9cee4.zip | |
Add handling to remove invalid sources
| -rw-r--r-- | src/invidious/views/components/player.ecr | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr index 66ee358b..80879b67 100644 --- a/src/invidious/views/components/player.ecr +++ b/src/invidious/views/components/player.ecr @@ -115,17 +115,38 @@ var player = videojs("player", options, function() { }); player.on('error', function(event) { - console.log("An error occured in the player, reloading..."); + if (player.error().code === 2) { + console.log("An error occured in the player, reloading..."); - var currentTime = player.currentTime(); - var playbackRate = player.playbackRate() - player.load(); - if (currentTime > 0.5) { - currentTime -= 0.5; + var currentTime = player.currentTime(); + var playbackRate = player.playbackRate(); + player.load(); + if (currentTime > 0.5) { + currentTime -= 0.5; + } + player.currentTime(currentTime); + player.playbackRate(playbackRate); + player.play() + } else if (player.error().code === 4) { + console.log("Detected invalid source, removing..."); + var currentTime = player.currentTime(); + var sources = player.options().sources; + + for (var i = 0; i < sources.length; i++) { + if (sources[i].src === player.currentSource().src) { + sources.splice(i, 1); + break + } + }; + + player.load(); + if (currentTime > 0.5) { + currentTime -= 0.5; + } + player.currentTime(currentTime); + player.src(sources); + player.play(); } - player.currentTime(currentTime); - player.playbackRate(playbackRate); - player.play() }); player.share(shareOptions); |
