webvtt cuechange events
by Derk-Jan Hartman
HTML
<div id="eric">
<video width="400" controls crossorigin>
<source src="https://www.html5rocks.com/en/tutorials/track/basics/treeOfLife/video/developerStories-en.webm" type="video/webm; codecs="vp8, vorbis"" crossorigin>
<track label="English subtitles" kind="subtitles" srclang="en" src="https://www.html5rocks.com/en/tutorials/track/basics/treeOfLife/tracks/developerStories-subtitles-en.vtt" default crossorigin/>
</video>
<div><div class="on">The Web is always changing</div><div class="">asdf2</div></div>
</div>
JavaScript
(function(){
var video = document.querySelector('div#eric video');
var span1 = document.querySelector('div#eric > div :first-child');
var span2 = document.querySelector('div#eric > div :last-of-type');
if (!video.textTracks) return;
var track = video.textTracks[0];
track.mode = 'hidden';
var idx = 0;
track.oncuechange = function(e) {
var cue = this.activeCues[0];
if (cue) {
if (idx == 0) {
span2.className = '';
span1.classList.remove('on');
span1.innerHTML = '';
span1.appendChild(cue.getCueAsHTML());
span1.classList.add('on');
} else {
span1.className = '';
span2.classList.remove('on');
span2.innerHTML = '';
span2.appendChild(cue.getCueAsHTML());
span2.classList.add('on');
}
idx = ++idx % 2;
}
};
})();