aboutsummaryrefslogtreecommitdiffstats
path: root/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js')
-rw-r--r--src/js/captions.js21
-rw-r--r--src/js/listeners.js18
2 files changed, 19 insertions, 20 deletions
diff --git a/src/js/captions.js b/src/js/captions.js
index 24962387..4103d019 100644
--- a/src/js/captions.js
+++ b/src/js/captions.js
@@ -128,6 +128,7 @@ const captions = {
}
},
+ // Used internally for toggleCaptions()
toggle(input) {
// If there's no full support
if (!this.supported.ui) {
@@ -146,10 +147,19 @@ const captions = {
// Update state and trigger event
if (active !== this.captions.active) {
this.captions.active = active;
- triggerEvent.call(this, this.media, this.captions.active ? 'captionsenabled' : 'captionsdisabled');
+
+ // Update UI
+ controls.updateSetting.call(this, 'captions');
+
+ // Save to storage
+ this.storage.set({ captions: active });
+
+ // Trigger event (not used internally)
+ triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled');
}
},
+ // Used internally for currentTrack setter
set(index, setLanguage = true, show = true) {
const tracks = captions.getTracks.call(this);
@@ -187,7 +197,13 @@ const captions = {
this.embed.enableTextTrack(language);
}
- // Trigger event
+ // Update UI
+ controls.updateSetting.call(this, 'captions');
+
+ // Save to storage
+ this.storage.set({ language });
+
+ // Trigger event (not used internally)
triggerEvent.call(this, this.media, 'languagechange');
}
@@ -202,6 +218,7 @@ const captions = {
}
},
+ // Used internally for language setter
setLanguage(language, show = true) {
if (!is.string(language)) {
this.debug.warn('Invalid language argument', language);
diff --git a/src/js/listeners.js b/src/js/listeners.js
index 283bd4a2..280237b4 100644
--- a/src/js/listeners.js
+++ b/src/js/listeners.js
@@ -387,24 +387,6 @@ class Listeners {
controls.updateSetting.call(this.player, 'quality', null, event.detail.quality);
});
- // Caption language change
- on.call(this.player, this.player.media, 'languagechange', () => {
- // Update UI
- controls.updateSetting.call(this.player, 'captions');
-
- // Save to storage
- this.player.storage.set({ language: this.player.language });
- });
-
- // Captions toggle
- on.call(this.player, this.player.media, 'captionsenabled captionsdisabled', () => {
- // Update UI
- controls.updateSetting.call(this.player, 'captions');
-
- // Save to storage
- this.player.storage.set({ captions: this.player.captions.active });
- });
-
// Proxy events to container
// Bubble up key events for Edge
on.call(this.player, this.player.media, this.player.config.events.concat([