<!doctype html> <html> <head> <meta charset="utf-8"> <title>videojs-flashls-source-handler Demo</title> <link href="/node_modules/video.js/dist/video-js.css" rel="stylesheet"> </head> <body> <video id="videojs-flashls-source-handler-player" width=800 height=400 class="video-js vjs-default-skin" controls> </video> <ul id="id3-cues"></ul> <ul id="active-cues"></ul> <ul> <li><a href="/test/debug.html">Run unit tests in browser.</a></li> </ul> <script src="/node_modules/video.js/dist/video.js"></script> <script src="/dist/videojs-flashls-source-handler.js"></script> <script> function arrayFrom(arrayish) { var result = []; for (var i = 0; i < arrayish.length; i ++) { result.push(arrayish[i]); } return result; }; videojs.options.flash.swf = '/dist/video-js.swf'; var player = window.player = videojs('videojs-flashls-source-handler-player'); player.src({ src: 'https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8', type: 'application/x-mpegURL' }); // display ID3 cues var id3Cues = document.getElementById('id3-cues'); var activeCues = document.getElementById('active-cues'); player.textTracks().on('addtrack', function() { var id3Track; arrayFrom(player.textTracks()).forEach(function(track) { if (track.kind === 'metadata' && !id3Track) { id3Track = track; } }); if (!id3Track) { return; } id3Track.on('cuechange', function(event) { id3Cues.innerHTML = ''; arrayFrom(id3Track.cues).forEach(function(cue) { var li = document.createElement('li'); li.appendChild(document.createTextNode(cue.text)); id3Cues.appendChild(li); }); activeCues.innerHTML = ''; arrayFrom(id3Track.activeCues).forEach(function(cue) { var li = document.createElement('li'); li.innerHTML = cue.startTime + '-' + cue.endTime; activeCues.appendChild(li); }); }); }); </script> </body> </html>