aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/captions.js
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2019-04-25 12:01:00 +1000
committerSam Potts <sam@potts.es>2019-04-25 12:01:00 +1000
commite147f3a754765a8d21899751e8e8cf283929abfd (patch)
tree28e71bc0331aa39bacc0dd35b5ff53c867aae1a3 /src/js/captions.js
parentb694e7d3abc3f40acf9891761f1a767923174c5e (diff)
downloadplyr-e147f3a754765a8d21899751e8e8cf283929abfd.tar.lz
plyr-e147f3a754765a8d21899751e8e8cf283929abfd.tar.xz
plyr-e147f3a754765a8d21899751e8e8cf283929abfd.zip
Formatting
Diffstat (limited to 'src/js/captions.js')
-rw-r--r--src/js/captions.js29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/js/captions.js b/src/js/captions.js
index ae4642aa..b326d85e 100644
--- a/src/js/captions.js
+++ b/src/js/captions.js
@@ -124,19 +124,21 @@ const captions = {
// Handle tracks (add event listener and "pseudo"-default)
if (this.isHTML5 && this.isVideo) {
- tracks.filter(track => !meta.get(track)).forEach(track => {
- this.debug.log('Track added', track);
- // Attempt to store if the original dom element was "default"
- meta.set(track, {
- default: track.mode === 'showing',
+ tracks
+ .filter(track => !meta.get(track))
+ .forEach(track => {
+ this.debug.log('Track added', track);
+ // Attempt to store if the original dom element was "default"
+ meta.set(track, {
+ default: track.mode === 'showing',
+ });
+
+ // Turn off native caption rendering to avoid double captions
+ track.mode = 'hidden';
+
+ // Add event listener for cue changes
+ on.call(this, track, 'cuechange', () => captions.updateCues.call(this));
});
-
- // Turn off native caption rendering to avoid double captions
- track.mode = 'hidden';
-
- // Add event listener for cue changes
- on.call(this, track, 'cuechange', () => captions.updateCues.call(this));
- });
}
// Update language first time it matches, or if the previous matching track was removed
@@ -300,10 +302,12 @@ const captions = {
const sortIsDefault = track => Number((this.captions.meta.get(track) || {}).default);
const sorted = Array.from(tracks).sort((a, b) => sortIsDefault(b) - sortIsDefault(a));
let track;
+
languages.every(language => {
track = sorted.find(track => track.language === language);
return !track; // Break iteration if there is a match
});
+
// If no match is found but is required, get first
return track || (force ? sorted[0] : undefined);
},
@@ -360,6 +364,7 @@ const captions = {
// Get cues from track
if (!cues) {
const track = captions.getCurrentTrack.call(this);
+
cues = Array.from((track || {}).activeCues || [])
.map(cue => cue.getCueAsHTML())
.map(getHTML);