/**
* This script is the main player script designed for hooverhigh
* HooverHighVideoPlayer 2
* Copyright oxmc.
*/
function gup(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return results[1];
};
var pad = function(n, x, c) {
return (new Array(n).join(c || '0') + x).slice(-n);
};
var padRight = function(n, x, c) {
return (x + (new Array(n).join(c || '0'))).slice(0, n);
};
//This variable is never used, but is here if a user wants to include jquery automaticly if option is set:
var jquerycodelink = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js";
if (window.jQuery) {
//jQuery is loaded:
var jquery_version = jQuery.fn.jquery || jQuery().jquery;
console.log("Jquery loaded, version: ", jquery_version);
if (jquery_version < "3.3.1") {
throw new Error("This version of jquery is not supported for this script, use jquery 3.3.1");
};
} else {
throw new Error("jQuery not loaded, this script requires jquery 3.3.1");
};
const defvideourl = "https://cdn.hooverhigh.ml/videos/Welcome-to-Hoover-High-School_1668535472506.mp4";
const defvideoposter = "https://cdn.hooverhigh.ml/images/hooverhightornado.png?w=200&h=200";
const defvideowatermark = 'https://cdn.hooverhigh.ml/images/hooverhightornado.png?w=100&h=100';
const defvideowatermarkurl = "https://www.gusd.net/hooverhs";
const defvideotext = "";
const defvidtext = false;
const defvidup = "";
const defvideotype = "video/mp4";
const deftechorder = ["html5"];
const defshareurl = window.location.href || "https://hooverhigh.ml/player.html";
const rup = false;
const showads = false;
var videoplayers = document.querySelectorAll("video");
if (typeof videoplayers != "undefined" && typeof videoplayers != null && typeof videoplayers == "object") {
for (let i = 0; i < videoplayers.length; i++) {
let videourl, videotype, videoposter, videowatermark, videowatermarkurl, videotext, vidtext, vidup, shareurl, isdatasrc, techorder;
isdatasrc = false;
if ($(videoplayers[i]).data("vidsrc") != null && typeof $(videoplayers[i]).data("vidsrc") == "string" && $(videoplayers[i]).data("vidsrc") != "undefined") {
isdatasrc = true;
videourl = $(videoplayers[i]).data("vidsrc");
} else {
if (rup == true && gup("vid") != null && gup("vid").length != 0 && isdatasrc == false) {
videourl = gup("vid");
vidup = `?vid=${videourl}`;
} else {
videourl = defvideourl;
vidup = defvidup;
};
};
if ($(videoplayers[i]).data("srctype") != null && typeof $(videoplayers[i]).data("srctype") == "string" && $(videoplayers[i]).data("srctype") != "undefined") {
videotype = $(videoplayers[i]).data("srctype");
} else {
if (rup == true && gup("vidsrctype") != null && gup("vidsrctype").length != 0) {
videotype = gup("vidsrctype");
} else {
videotype = defvideotype;
};
};
if ($(videoplayers[i]).data("poster") != null && typeof $(videoplayers[i]).data("poster") == "string" && $(videoplayers[i]).data("poster") != "undefined") {
videoposter = $(videoplayers[i]).data("poster");
} else {
if (rup == true && gup("vidpost") != null && gup("vidpost").length != 0) {
videoposter = gup("vidpost");
} else {
videoposter = defvideoposter;
};
};
if ($(videoplayers[i]).data("watermark") != null && typeof $(videoplayers[i]).data("watermark") == "string" && $(videoplayers[i]).data("watermark") != "undefined") {
videowatermark = $(videoplayers[i]).data("watermark");
} else {
if (rup == true && gup("vidwatermark") != null && gup("vidwatermark").length != 0) {
videowatermark = gup("vidwatermark");
} else {
videowatermark = defvideowatermark;
};
};
if ($(videoplayers[i]).data("watermarkurl") != null && typeof $(videoplayers[i]).data("watermarkurl") == "string" && $(videoplayers[i]).data("watermarkurl") != "undefined") {
videowatermarkurl = $(videoplayers[i]).data("watermarkurl");
} else {
if (rup == true && gup("vidwatermarkurl") != null && gup("vidwatermarkurl").length != 0) {
videowatermarkurl = gup("vidwatermarkurl");
} else {
videowatermarkurl = defvideowatermarkurl;
};
};
if (rup == true && gup("vidtext") != null && gup("vidtext").length != 0) {
videotext = gup("vidtext");
vidtext = true;
} else {
videotext = defvideotext;
vidtext = defvidtext;
};
shareurl = `${defshareurl}${vidup}`;
if (videotype == "video/youtube") {
techorder = ["youtube", "html5"];
shareurl = videourl;
} else {
techorder = deftechorder;
};
//console.log(videourl);
//console.log(videotype);
//console.log(videoposter);
//console.log(videowatermark);
//console.log(videowatermarkurl);
//console.log(vidtext);
//console.log(techorder);
var player = videojs(videoplayers[i], {
plugins: {
hotkeys: {
volumeStep: 0.1,
seekStep: 5,
enableModifiersForNumbers: false
},
},
textTrackSettings: vidtext,
techOrder: techorder
});
if ($(videoplayers[i]).data("vr") != null && typeof $(videoplayers[i]).data("vr") == "boolean" && $(videoplayers[i]).data("vr") != "undefined" && $(videoplayers[i]).data("vr") == true) {
console.log("VR Init");
player.mediainfo = player.mediainfo || {};
player.mediainfo.projection = '360';
// AUTO is the default and looks at mediainfo:
player.vr({projection: 'AUTO', debug: true, forceCardboard: false});
};
if (showads == true) {
// initalize ad plugin for this player
player.exampleAds({
debug: true
});
var Html5 = videojs.getTech('Html5');
var eventList = Html5.Events.concat(Html5.Events.map(function(evt) {
return 'ad' + evt;
})).concat(Html5.Events.map(function(evt) {
return 'content' + evt;
})).concat([
// events emitted by ad plugin
'adtimeout',
'contentupdate',
'contentplayback',
'readyforpreroll',
'readyforpostroll',
// events emitted by third party ad implementors
'adsready',
'adscanceled',
'adplaying',
'adstart', // startLinearAdMode()
'adend', // endLinearAdMode()
'nopreroll',
'nopostroll'
]).filter(function(evt) {
var events = {
progress: 1,
timeupdate: 1,
suspend: 1,
emptied: 1,
durationchange: 1,
contentprogress: 1,
contenttimeupdate: 1,
contentsuspend: 1,
contentemptied: 1,
adprogress: 1,
adtimeupdate: 1,
adsuspend: 1,
ademptied: 1,
adabort: 1
}
return !(evt in events);
});
player.on(eventList, function(event) {
var d, str, evt;
evt = event.type;
d = new Date();
d = '' +
pad(2, d.getHours()) + ':' +
pad(2, d.getMinutes()) + ':' +
pad(2, d.getSeconds()) + '.' +
pad(3, d.getMilliseconds());
});
};
var shareOptions = {
socials: ['fb', 'tw', 'reddit', 'telegram', 'whatsapp'],
url: shareurl,
title: 'HooverHigh Video',
description: 'video.js share plugin',
image: 'https://hooverhigh.ml/assets/img/HooverHS.png',
// required for Facebook and Messenger
fbAppId: '436772158593997',
redirectUri: `${shareurl}#close`,
embedCode: ``
}
//Init plugins:
player.errors();
player.errors.extend({
"web-vr-hls-cors-not-supported": {
headline: 'HLS 360 Error',
message: 'Your browser/device does not support HLS 360 video. See http://webvr.info for assistance.'
}
});
//player.replayButton();
player.share(shareOptions);
//Set player src and poster:
player.poster(videoposter);
player.src({
src: videourl,
type: videotype,
});
//Set player watermark:
player.watermark({
fadeTime: null,
position: 'top-right',
image: videowatermark,
url: videowatermarkurl
});
//Captions:
if (vidtext != null && vidtext == true) {
const trackEl = player.addRemoteTextTrack({
src: videotext
}, false);
// Get all text tracks for the current player.
/*var tracks = player.textTracks();
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];*/
// Find the English captions track and mark it as "showing".
/*if (track.kind === 'captions' && track.language === 'en') {
track.mode = 'showing';
}
}*/
};
};
};