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) {
app.ports.registerVideo.subscribe(function(args) {
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() {
if (args[0] !== lastId) {
lastId = args[0];
player = vd.setup(args[0], {
v: args[1] + "/manifest.mpd",
v: args[1] + "/manifest.m3u8",
t: time,
focus: true
});
@ -38,6 +39,8 @@
player.currentTime(time);
}
});
setTimeout(recordPosition, 1000);
});
}
@ -47,6 +50,13 @@
lastId = undefined;
});
}
function recordPosition() {
if (lastId !== undefined) {
localStorage.setItem(lastId, player.currentTime());
setTimeout(recordPosition, 1000);
}
}
</script>
</body>
</html>

View File

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