summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious/views/components/player.ecr39
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);