diff options
| author | RblSb <msrblsb@gmail.com> | 2020-04-03 04:48:36 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2020-04-03 04:48:36 +0300 |
| commit | 5f2a3b89eaa1199d9bc2ddd10622f9803cec983f (patch) | |
| tree | ee9064ee7b683cfe2ac7b504ba81674b490367b6 /src/client/Player.hx | |
| parent | 62c9be74228549ff888b684a62f77fb056571470 (diff) | |
Sync playback rate
Diffstat (limited to 'src/client/Player.hx')
| -rw-r--r-- | src/client/Player.hx | 26 |
1 files changed, 26 insertions, 0 deletions
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); + } + } |
