").appendTo(controls);
mbOptions = $("#multiBandwidthOptions");
createMultiBandwithAnchors(currentVideoHeight);
multiBandwidth.hover(function () {
mbOptions.show();
},
function () {
mbOptions.hide();
});
};
// BUILD MULTI-BANDWIDTH PLAYER TOOL
function createMultiBandwithAnchors(videoHeight) {
videoHeight = checkVideoHeight(videoHeight);
updateMultiBandwithAnchors(videoFilesObj, videoHeight);
}
// CHECK IF CURRENT VIDEO HEIGHT EXISTS
function checkVideoHeight(heightToCheck) {
var index = videoFilesObj.length - 1;
tempHeight = videoFilesObj[index].height;
for (var i = 0; i 0) {
restartTimer = time;
}
}
// The container element is relatively positioned. MediaElement js creates an absolutely
// positioned element within. Absolutely positioned items do not respect the containment
// of parent relatively positioned elements. This ensures the heights are constrained.
function calculateVideoHeight() {
if (debug) console.log('DVIDSPlayer() > calculateVideoHeight()');
var playerHeight = $('.DVIDSVideoPlayerItem video').height();
if (debug) console.log('DVIDSPlayer() > calculateVideoHeight', playerHeight);
if (playerHeight) {
$('.DVIDSVideoPlayer .video-column, .DVIDSVideoPlayerItem, .DVIDSVideoPlayerItemPlaceHolder').css("min-height", playerHeight + 20);
$('.DVIDSVideoPlayerItem .mejs__video, .DVIDSVideoPlayerItem video').css('height', playerHeight);
}
}
function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
function setAspectRatio() {
if (debug) console.log('DVIDSPlayer() > setAspectRatio()');
// for portrait aspect ratio, need to wait till video is playing, then redetect height
var loopCount = 0;
var mainLoopId = setInterval(function () {
loopCount++;
calculateVideoHeight();
if (loopCount > 10) {
clearInterval(mainLoopId);
}
if (debug) console.log('DVIDSPlayer() > setAspectRatio() > setInterval Running');
}, 500);
}
function playVideo() {
document.getElementById('videoPlayer20567').play();
setAspectRatio();
//var playButton = $(".mejs-overlay-play");
//if (playButton.size() != 0) {
// playButton.trigger("click");
//}
}
myPlayer = new MediaElementPlayer('videoPlayer20567', {
videoWidth: '100%',
videoHeight: '100%',
//enableAutosize: true,
pluginPath: "/DesktopModules/SharedLibrary/Plugins/MediaElement4.2.9/",
hls: {
debug: false,
capLevelToPlayerSize: true,
capLevelOnFPSDrop: true,
startLevel: -1,
abrMaxWithRealBitrate: true
},
features: ["playpause", "progress", "current", "duration", "tracks", "volume", "fullscreen"],
success: function (mediaElement, domObject) {
$(".DVPPlayerBackground .mejs__poster-img").attr("alt", "A brief video to educate Military \u0026 Civilian Government Medical Leadership about the mission of METC, and how they develop and train the world\u0026#39;s finest Corpsman, Army Medics/Technicians, Air Force Medics/Technicians and Coast Guard Medical Technician in support of DoD. The short version was created specifically for METC’s website and social media sites.\u003cbr /\u003e\u003cbr /\u003e2017 Navy Media Awards (NMA): IO25 Social Media");
mediaElement.addEventListener('playing', function (e) {
if (defaultButton.length) {
if (playEventButtonTriggered === false) {
defaultButton.hide();
hoverButton.hide();
playEventButtonTriggered = true;
}
}
if (playEventAlreadyTriggered === false) {
DVIDSVideoAnalytics.track('play', analyticsParams);
if(debug) {
console.debug('DVIDSVideoAnalytics PLAY EVENT');
}
playEventAlreadyTriggered = true;
}
});
mediaElement.addEventListener('play', function (e) {
if ($(".mejs__controls").is(":hidden") )
$(".mejs__controls").show();
// if overlay exists, hide it
if ($(".mejs__layer.video-overlay").length)
$(".mejs__layer.video-overlay").hide();
setAspectRatio();
});
mediaElement.addEventListener('ended', function (e) {
DVIDSVideoAnalytics.track('ended', analyticsParams);
if(debug) {
console.debug('DVIDSVideoAnalytics ENDED EVENT');
}
//play next media
var nextURL = "javascript:GetCCURL('https://www.metc.mil/?videoid=763685#DVIDSVideoPlayer20567')";
if (nextURL != "") {
document.location = nextURL;
}
});
//$('#videoPlayer20567').css({'width': '100%', 'height':'100%'});
// EVENT LISTENER FOR WHEN VIDEO TIME HAS BEEN UPDATED
mediaElement.addEventListener('timeupdate', function (e) {
// IF VIDEO HAS NOT BEEN PLAYED AND SAVED POSITION IS GREATER THAN 0
if (!videoHasPlayed && restartTimer > 0) {
// SET THE START TIME FROM THE RELATION IN SECONDS
myPlayer.setCurrentTime(restartTimer);
// SET THE VIDEO HAS PLAYED FLAG AND CLEAR THE TIMER
// OTHERWISE KEEP CONTINUAL LOOP GOING BACK TO THIS TIME
// THIS EVENT GETS CALLED AROUND EVERY 250MS
videoHasPlayed = true;
restartTimer = 0;
}
}, false);
mediaElement.addEventListener('canplay', function (e) {
CheckCaptions();
}, false);
mediaElement.addEventListener('pause', function (e) {
if (defaultButton.length) {
defaultButton.removeAttr("style");
hoverButton.removeAttr("style");
playEventButtonTriggered = false;
}
}, false);
mbOptions.delegate("a", "click", function () {
var obj = $(this);
if (obj.hasClass("chosenMBLink")) {
return false;
}
else {
mbOptions.find("a.chosenMBLink").removeClass("chosenMBLink");
obj.addClass("chosenMBLink");
currentVideoHeight = obj.html().substring(0, obj.html().length - 1);
setPlayerSource(obj.attr("fileurl"));
}
mbOptions.hide();
return false;
});
// ASSIGN CAPTIONS SELECTOR TO JQUERY OBJECT, SET CLICK DELEGATE AND TURN ON CAPTIONS IF PREVIOUSLY ENABLED
captionsSelector = $("div.mejs-captions-selector");
captionsSelector.delegate("input:radio", "click", function () {
var lang = this.value;
if (lang == "none") {
dvpCCEnabled = false;
}
else {
dvpCCEnabled = true;
}
});
turnOnCaptionsIfEnabled();
}
});
$window.on("resize", function () {
if ($(".mejs__time-total.mejs__time-slider").attr("aria-valuemax") == "NaN") {
$(".mejs__time-total.mejs__time-slider").attr("aria-valuemax",83);
}
var debouncedFn = debounce(calculateVideoHeight, 250);
debouncedFn();
});
// AUTOMATICALLY PLAY VIDEO IF ID PASSED OR VIDEO CLICKED
if (false) {
playVideo();
//document.getElementById('videoPlayer20567').play();
}
});
function updateMultiBandwithAnchors(files, videoHeight) {
var mbOptions = $("#multiBandwidthOptions");
var multiBandwidthHTML = [];
for (var i = 0; i " + files[i].height + "p");
}
else {
if (files[i].height != files[i+1].height) {
multiBandwidthHTML.unshift("
" + files[i].height + "p");
}
}
}
multiBandwidthHTML.push("
");
mbOptions.html(multiBandwidthHTML.join(""));
var mbAnchors = mbOptions.children("a");
for (i = 0; i
Video by Thomas Webster