From 5f2a3b89eaa1199d9bc2ddd10622f9803cec983f Mon Sep 17 00:00:00 2001 From: RblSb Date: Fri, 3 Apr 2020 04:48:36 +0300 Subject: Sync playback rate --- src/client/Player.hx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/client/Player.hx') diff --git a/src/client/Player.hx b/src/client/Player.hx index 8e55b25..53a1168 100644 --- a/src/client/Player.hx +++ b/src/client/Player.hx @@ -21,6 +21,7 @@ class Player { var itemPos = 0; var isLoaded = false; var skipSetTime = false; + var skipSetRate = false; public function new(main:Main):Void { this.main = main; @@ -158,6 +159,19 @@ class Player { }); } + public function onRateChange():Void { + if (skipSetRate) { + skipSetRate = false; + return; + } + if (!main.isLeader()) return; + main.send({ + type: SetRate, setRate: { + rate: getPlaybackRate() + } + }); + } + public function addVideoItem(item:VideoItem, atEnd:Bool):Void { final url = item.url.htmlEscape(true); final itemEl = nodeFromString( @@ -322,4 +336,16 @@ class Player { player.setTime(time); } + public function getPlaybackRate():Float { + if (player == null) return 1; + return player.getPlaybackRate(); + } + + public function setPlaybackRate(rate:Float, isLocal = true):Void { + if (!main.isSyncActive) return; + if (player == null) return; + skipSetRate = isLocal; + player.setPlaybackRate(rate); + } + } -- cgit v1.2.3