aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2020-02-20 00:43:12 +0300
committerRblSb <msrblsb@gmail.com>2020-02-20 00:43:12 +0300
commite53a69f09dd3f03b984986bbb3a2daddf78b159f (patch)
treeb38e738324475cfc28d1eaa2105561d3d3e55547
parent2ecf9b8d31457175c6cc4ca5a441a165556afb77 (diff)
Improve seeking
-rw-r--r--build/client.js25
-rw-r--r--res/css/des.css3
-rw-r--r--src/client/Main.hx14
-rw-r--r--src/client/Player.hx2
4 files changed, 34 insertions, 10 deletions
diff --git a/build/client.js b/build/client.js
index 6a6b5f8..5997420 100644
--- a/build/client.js
+++ b/build/client.js
@@ -491,12 +491,21 @@ client_Main.prototype = {
case "GetTime":
var newTime = data.getTime.time;
var time = this.player.getTime();
+ if(this.isLeader()) {
+ if(Math.abs(time - newTime) < 2) {
+ return;
+ }
+ this.player.setTime(time,false);
+ return;
+ }
if(Math.abs(time - newTime) < 2) {
return;
}
this.player.setTime(newTime);
if(!data.getTime.paused) {
this.player.play();
+ } else {
+ this.player.pause();
}
break;
case "Login":
@@ -516,10 +525,16 @@ client_Main.prototype = {
this.addMessage(data.message.clientName,data.message.text);
break;
case "Pause":
+ if(this.isLeader()) {
+ return;
+ }
this.player.pause();
this.player.setTime(data.pause.time);
break;
case "Play":
+ if(this.isLeader()) {
+ return;
+ }
this.player.setTime(data.play.time);
this.player.play();
break;
@@ -532,15 +547,15 @@ client_Main.prototype = {
case "SetLeader":
ClientTools.setLeader(this.clients,data.setLeader.clientName);
this.updateUserList();
- if(this.personal == null) {
- return;
- }
var leaderBtn = window.document.querySelector("#leader_btn");
- if(this.personal.isLeader) {
+ if(this.isLeader()) {
leaderBtn.classList.add("label-success");
} else {
leaderBtn.classList.remove("label-success");
}
+ if(this.isLeader()) {
+ this.player.setTime(this.player.getTime(),false);
+ }
break;
case "SetTime":
var newTime1 = data.setTime.time;
@@ -792,7 +807,7 @@ client_Player.prototype = {
}
return _gthis.isLoaded = true;
};
- this.video.ontimeupdate = function(e1) {
+ this.video.onseeking = function(e1) {
if(_gthis.skipSetTime) {
_gthis.skipSetTime = false;
return;
diff --git a/res/css/des.css b/res/css/des.css
index 583d7bd..014d3d6 100644
--- a/res/css/des.css
+++ b/res/css/des.css
@@ -1014,8 +1014,7 @@ border-top-left-radius:0
border:0
}
.embed-responsive.embed-responsive-16by9 {
- /* padding-bottom:56.25%; */
- padding-bottom:60%;
+ padding-bottom:56.25%;
background-color: rgb(26, 29, 32);
}
.embed-responsive.embed-responsive-4by3 {
diff --git a/src/client/Main.hx b/src/client/Main.hx
index 5084587..5b2dc4c 100644
--- a/src/client/Main.hx
+++ b/src/client/Main.hx
@@ -251,17 +251,27 @@ class Main {
player.removeItem(data.removeVideo.url);
if (player.isListEmpty()) player.pause();
case Pause:
+ if (isLeader()) return;
player.pause();
player.setTime(data.pause.time);
case Play:
+ if (isLeader()) return;
player.setTime(data.play.time);
player.play();
case GetTime:
final newTime = data.getTime.time;
final time = player.getTime();
+ if (isLeader()) {
+ // if video is loading on leader
+ // move other clients back in time
+ if (Math.abs(time - newTime) < 2) return;
+ player.setTime(time, false);
+ return;
+ }
if (Math.abs(time - newTime) < 2) return;
player.setTime(newTime);
if (!data.getTime.paused) player.play();
+ else player.pause();
case SetTime:
final newTime = data.setTime.time;
final time = player.getTime();
@@ -270,10 +280,10 @@ class Main {
case SetLeader:
clients.setLeader(data.setLeader.clientName);
updateUserList();
- if (personal == null) return;
final leaderBtn:InputElement = cast ge("#leader_btn");
- if (personal.isLeader) leaderBtn.classList.add('label-success');
+ if (isLeader()) leaderBtn.classList.add('label-success');
else leaderBtn.classList.remove('label-success');
+ if (isLeader()) player.setTime(player.getTime(), false);
}
}
diff --git a/src/client/Player.hx b/src/client/Player.hx
index 2973e9b..efdb71a 100644
--- a/src/client/Player.hx
+++ b/src/client/Player.hx
@@ -33,7 +33,7 @@ class Player {
if (!isLoaded) main.send({type: VideoLoaded});
isLoaded = true;
}
- video.ontimeupdate = (e) -> {
+ video.onseeking = e -> {
if (skipSetTime) {
skipSetTime = false;
return;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage