From f29e01c78ef3756d55a04b7e9e52cd7b158c9c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 31 Aug 2018 18:16:47 +0200 Subject: [PATCH] Video player: remember volume in local storage --- src/scripts/video_plugins.js | 20 +++++++++++++++++++ .../nodes/custom/asset/video/view_embed.pug | 1 + 2 files changed, 21 insertions(+) diff --git a/src/scripts/video_plugins.js b/src/scripts/video_plugins.js index cd0c20a3..d19c1ed5 100644 --- a/src/scripts/video_plugins.js +++ b/src/scripts/video_plugins.js @@ -178,5 +178,25 @@ var VideoProgressPlugin = videojs.extend(Plugin, { }, }); +var RememberVolumePlugin = videojs.extend(Plugin, { + constructor: function(player, options) { + Plugin.call(this, player, options); + player.on('volumechange', this.on_volumechange.bind(this)); + this.restore_volume(); + }, + + restore_volume: function() { + let volume_str = localStorage.getItem('video-player-volume'); + if (volume_str == null) return; + this.player.volume(1.0 * volume_str); + }, + + on_volumechange: function(event) { + localStorage.setItem('video-player-volume', this.player.volume()); + }, +}); + + // Register our watch-progress-bookkeeping plugin. videojs.registerPlugin('progressPlugin', VideoProgressPlugin); +videojs.registerPlugin('rememberVolumePlugin', RememberVolumePlugin); diff --git a/src/templates/nodes/custom/asset/video/view_embed.pug b/src/templates/nodes/custom/asset/video/view_embed.pug index 55c938c0..6a4206fc 100644 --- a/src/templates/nodes/custom/asset/video/view_embed.pug +++ b/src/templates/nodes/custom/asset/video/view_embed.pug @@ -66,6 +66,7 @@ script(type="text/javascript"). 'eventsToTrack' : ['start', 'error', 'percentsPlayed'] }); this.hotkeys(); + this.rememberVolumePlugin(); {% if current_user.is_authenticated %} let fetch_progress_url = '{{ url_for("users_api.get_video_progress", video_id=node._id) }}';