aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/captions.js
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2019-04-25 12:11:06 +1000
committerGitHub <noreply@github.com>2019-04-25 12:11:06 +1000
commite644eeb5b62e6e2eb915d5915cb65ba8af88c05e (patch)
tree60f96b088ce8490429199163a5e71768b8a9b52c /src/js/captions.js
parent2bd08cdc28bf55b7f7a169b02eb288d7b197b8d6 (diff)
parent5ddd9e02def654bb677c988403dbefbc4a32787c (diff)
downloadplyr-e644eeb5b62e6e2eb915d5915cb65ba8af88c05e.tar.lz
plyr-e644eeb5b62e6e2eb915d5915cb65ba8af88c05e.tar.xz
plyr-e644eeb5b62e6e2eb915d5915cb65ba8af88c05e.zip
Merge pull request #1423 from sampotts/develop
v3.5.4
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);