2020-06-19 00:38:06 +03:00
|
|
|
const streamURL = '/hls/stream.m3u8';
|
|
|
|
// const streamURL = 'https://goth.land/hls/stream.m3u'; // Uncomment me to point to remote video
|
|
|
|
|
2020-06-18 01:02:50 +03:00
|
|
|
// style hackings
|
|
|
|
window.VIDEOJS_NO_DYNAMIC_STYLE = true;
|
|
|
|
|
2020-06-19 00:38:06 +03:00
|
|
|
// Create the player for the first time
|
|
|
|
const player = videojs('video', null, function () {
|
2020-06-18 01:02:50 +03:00
|
|
|
getStatus();
|
|
|
|
setInterval(getStatus, 5000);
|
|
|
|
setupPlayerEventHandlers();
|
2020-06-18 03:13:55 +03:00
|
|
|
})
|
2020-06-18 01:02:50 +03:00
|
|
|
|
2020-06-19 00:38:06 +03:00
|
|
|
player.ready(function () {
|
|
|
|
console.log('Player ready.')
|
2020-06-19 06:46:00 +03:00
|
|
|
player.reset();
|
2020-06-19 00:38:06 +03:00
|
|
|
player.src({ type: 'application/x-mpegURL', src: streamURL });
|
|
|
|
});
|
|
|
|
|
2020-06-18 01:02:50 +03:00
|
|
|
function setupPlayerEventHandlers() {
|
|
|
|
const player = videojs('video');
|
|
|
|
|
|
|
|
player.on('error', function (e) {
|
2020-06-18 03:48:33 +03:00
|
|
|
console.log("Player error: ", e);
|
2020-06-18 01:02:50 +03:00
|
|
|
})
|
|
|
|
|
2020-06-18 03:48:33 +03:00
|
|
|
// player.on('loadeddata', function (e) {
|
|
|
|
// console.log("loadeddata");
|
|
|
|
// })
|
2020-06-18 01:02:50 +03:00
|
|
|
|
2020-06-18 03:48:33 +03:00
|
|
|
// player.on('ended', function (e) {
|
|
|
|
// console.log("ended");
|
|
|
|
// })
|
|
|
|
//
|
2020-06-18 01:02:50 +03:00
|
|
|
// player.on('abort', function (e) {
|
|
|
|
// console.log("abort");
|
|
|
|
// })
|
2020-06-18 03:48:33 +03:00
|
|
|
//
|
2020-06-18 01:02:50 +03:00
|
|
|
// player.on('durationchange', function (e) {
|
|
|
|
// console.log("durationchange");
|
|
|
|
// })
|
2020-06-18 03:48:33 +03:00
|
|
|
//
|
2020-06-18 01:02:50 +03:00
|
|
|
// player.on('stalled', function (e) {
|
|
|
|
// console.log("stalled");
|
|
|
|
// })
|
2020-06-18 03:48:33 +03:00
|
|
|
//
|
2020-06-19 06:46:00 +03:00
|
|
|
player.on('playing', function (e) {
|
|
|
|
clearTimeout(playerRestartTimer);
|
|
|
|
})
|
2020-06-18 03:48:33 +03:00
|
|
|
//
|
|
|
|
// player.on('waiting', function (e) {
|
|
|
|
// // console.log("waiting");
|
|
|
|
// })
|
2020-06-18 01:02:50 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function restartPlayer() {
|
|
|
|
try {
|
2020-06-19 06:46:00 +03:00
|
|
|
console.log('restarting')
|
2020-06-18 01:02:50 +03:00
|
|
|
const player = videojs('video');
|
2020-06-19 06:46:00 +03:00
|
|
|
player.pause();
|
2020-06-18 01:02:50 +03:00
|
|
|
player.src(player.src()); // Reload the same video
|
|
|
|
player.load();
|
|
|
|
player.play();
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|