Support for HLS

This commit is contained in:
Thomas Forgione 2021-03-24 08:17:36 +01:00
parent 360952706d
commit c28f3ef9ae
2 changed files with 27 additions and 9 deletions

View File

@ -23,14 +23,15 @@
if (app.ports !== undefined && app.ports.registerVideo !== undefined) { if (app.ports !== undefined && app.ports.registerVideo !== undefined) {
app.ports.registerVideo.subscribe(function(args) { app.ports.registerVideo.subscribe(function(args) {
window.scrollTo(0, 0); window.scrollTo(0, 0);
var time = vd.parseTime(args[2]) || undefined; var time = vd.parseTime(args[2]);
time = time || vd.parseTime(localStorage.getItem(args[0]));
requestAnimationFrame(function() { requestAnimationFrame(function() {
if (args[0] !== lastId) { if (args[0] !== lastId) {
lastId = args[0]; lastId = args[0];
player = vd.setup(args[0], { player = vd.setup(args[0], {
v: args[1] + "/manifest.mpd", v: args[1] + "/manifest.m3u8",
t: time, t: time,
focus: true focus: true
}); });
@ -38,6 +39,8 @@
player.currentTime(time); player.currentTime(time);
} }
}); });
setTimeout(recordPosition, 1000);
}); });
} }
@ -47,6 +50,13 @@
lastId = undefined; lastId = undefined;
}); });
} }
function recordPosition() {
if (lastId !== undefined) {
localStorage.setItem(lastId, player.currentTime());
setTimeout(recordPosition, 1000);
}
}
</script> </script>
</body> </body>
</html> </html>

View File

@ -238,7 +238,7 @@ function createRepresentationButtons(player, menuButton = undefined) {
let hls = player.tech({IWillNotUseThisInPlugins: true}).hls; let hls = player.tech({IWillNotUseThisInPlugins: true}).hls;
if (hls === undefined) { if (hls === undefined || hls.representations === undefined) {
setTimeout(() => createRepresentationButtons(player, menuButton), 500); setTimeout(() => createRepresentationButtons(player, menuButton), 500);
return menuButton; return menuButton;
} }
@ -365,10 +365,16 @@ vd.setup = function(video, args) {
} }
let player = videojs(video); let player = videojs(video);
if (src.endsWith('.mpd')) {
player.src({ player.src({
src, src,
type: 'application/dash+xml' type: 'application/dash+xml'
}); });
} else {
player.src({
src,
});
}
if (args.focus === true) { if (args.focus === true) {
player.focus(); player.focus();
@ -528,8 +534,10 @@ vd.setup = function(video, args) {
controlBar.removeChild(fullscreenButton); controlBar.removeChild(fullscreenButton);
let menuButton = createRepresentationButtons(player); let menuButton = createRepresentationButtons(player);
if (player.getAttribute('disable-speed') == undefined) {
let speedButton = createSpeedButtons(player); let speedButton = createSpeedButtons(player);
controlBar.addChild(speedButton, {}); controlBar.addChild(speedButton, {});
}
controlBar.addChild(menuButton, {}); controlBar.addChild(menuButton, {});
controlBar.addChild(fullscreenButton, {}); controlBar.addChild(fullscreenButton, {});