aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/Player.hx
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2020-04-26 02:39:46 +0300
committerRblSb <msrblsb@gmail.com>2020-04-26 02:39:46 +0300
commit3c5fda212a8b895027c3853d9979b12a8f6c5798 (patch)
tree5a0fb8c332cc5f1eba3b54e65fbebf2242585a0a /src/client/Player.hx
parent40589f8e8ee75485ba241777f3b26cd35d8a05ea (diff)
Fix some issues with reused players
Diffstat (limited to 'src/client/Player.hx')
-rw-r--r--src/client/Player.hx22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/client/Player.hx b/src/client/Player.hx
index d4ed854..c853464 100644
--- a/src/client/Player.hx
+++ b/src/client/Player.hx
@@ -21,7 +21,6 @@ class Player {
final videoItemsEl = ge("#queue");
final playerEl:Element = ge("#ytapiplayer");
var player:Null<IPlayer>;
- var currentSrc = "";
var itemPos = 0;
var isLoaded = false;
var skipSetTime = false;
@@ -118,7 +117,6 @@ class Player {
itemPos = i;
childs[itemPos].classList.add("queue_active");
- currentSrc = item.url;
isLoaded = false;
player.loadVideo(item);
JsApi.fireVideoChangeEvents(item);
@@ -127,7 +125,6 @@ class Player {
public function removeVideo():Void {
JsApi.fireVideoRemoveEvents(items[itemPos]);
- currentSrc = "";
player.removeVideo();
ge("#currenttitle").textContent = Lang.get("nothingPlaying");
}
@@ -261,11 +258,12 @@ class Player {
}
public function setItems(list:Array<VideoItem>, ?pos:Int):Void {
+ final currentUrl = itemPos >= items.length ? "" : items[itemPos].url;
clearItems();
if (pos != null) itemPos = pos;
if (list.length == 0) return;
for (video in list) addVideoItem(video, true);
- if (currentSrc != items[itemPos].url) setVideo(itemPos);
+ if (currentUrl != items[itemPos].url) setVideo(itemPos);
else videoItemsEl.children[itemPos].classList.add("queue_active");
}
@@ -321,43 +319,49 @@ class Player {
return playerEl.children.length != 0;
}
+ public function getDuration():Float {
+ if (itemPos >= items.length) return 0;
+ return items[itemPos].duration;
+ }
+
public function play():Void {
if (!main.isSyncActive) return;
if (player == null) return;
+ if (!player.isVideoLoaded()) return;
player.play();
}
public function pause():Void {
if (!main.isSyncActive) return;
if (player == null) return;
+ if (!player.isVideoLoaded()) return;
player.pause();
}
- public function getDuration():Float {
- if (itemPos >= items.length) return 0;
- return items[itemPos].duration;
- }
-
public function getTime():Float {
if (player == null) return 0;
+ if (!player.isVideoLoaded()) return 0;
return player.getTime();
}
public function setTime(time:Float, isLocal = true):Void {
if (!main.isSyncActive) return;
if (player == null) return;
+ if (!player.isVideoLoaded()) return;
skipSetTime = isLocal;
player.setTime(time);
}
public function getPlaybackRate():Float {
if (player == null) return 1;
+ if (!player.isVideoLoaded()) return 1;
return player.getPlaybackRate();
}
public function setPlaybackRate(rate:Float, isLocal = true):Void {
if (!main.isSyncActive) return;
if (player == null) return;
+ if (!player.isVideoLoaded()) return;
skipSetRate = isLocal;
player.setPlaybackRate(rate);
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage