Something went wrong on our end
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
player.js 4.32 KiB
var BPlayer = {
insertPlayer: function (address,domId,width,height,start,duration,provider,streamer,autostart,repeat,controlbar,poster) {
BPlayer.insertHTML5Player(address,domId,width,height,start,duration,provider,streamer,autostart,repeat,controlbar,poster);
},
playSound : function(soundUrl) {
var audio;
if (typeof Audio !== "undefined") {
try {
audio = new Audio(soundUrl);
audio.play();
} catch(e) {
if (window.console) {
console.error(e);
}
}
}
audio = null;
},
insertHTML5Player : function (address,domId,width,height,start,duration,provider,streamer,autostart,repeat,controlbar,poster) {
var videoUrl = address
if(address.indexOf('://') < 0 && (address.indexOf('/secstatic/qtieditor/') >= 0 || address.indexOf('/secstatic/qti/') >= 0)) {
videoUrl = address;
} else if(address.indexOf('://') < 0 && ((provider != "rtmp" && provider != "http") ||
((provider == "rtmp" || provider == "http") && (streamer == undefined || streamer.length == 0)))) {
var documentUrl = document.location.href;
videoUrl = documentUrl.substring(0, documentUrl.lastIndexOf('/'));
if(address.indexOf('/') != 0) {
videoUrl += '/';
}
videoUrl += address;
}
var playerUrl = BPlayer.playerUrl();
var args = {
file:videoUrl,
width:width,
height:height,
controlbar: { position: "bottom" },
flashplayer:playerUrl
};
if(typeof provider != 'undefined') {
args.provider = provider;
}
if(provider == "rtmp" || provider == "http") {
args.streamer = streamer;
}
if(typeof start != 'undefined') {
var startInSec = BPlayer.convertInSeconds(start);
if(startInSec > 0) {
args.start = startInSec;
}
}
if(typeof duration != 'undefined') {
var durationInSec = BPlayer.convertInSeconds(duration);
if(durationInSec > 0) {
args.duration = durationInSec;
}
}
if(typeof autostart != 'undefined' && autostart) {
args.autostart = true;
}
if(typeof repeat != 'undefined' && repeat) {
args.repeat = "single";
}
if(typeof controlbar != 'undefined' && !controlbar) {
args.controlbar = "none";
}
if(typeof poster != 'undefined') {
args.image = poster;
}
var realDomId;
if(BPlayer.isIE8() && domId != 'prev_container' && jQuery('#' + domId).is("span")) {
var spanEl = jQuery('#' + domId);
var width = spanEl.width();
var height = spanEl.height();
var videoParent = jQuery(spanEl).parent('p');
var newContainer = jQuery('<div id="' + domId + '_replacer" class="olatFlashMovieViewer" style="display:block;border:solid 1px #000; width:' + width + 'px; height:' + height + 'px;">Hello world</div>');
newContainer.insertAfter(videoParent);
spanEl.remove();
realDomId = domId + '_replacer';
} else {
realDomId = domId;
}
jQuery.getScript(BPlayer.playerJsUrl(), function() {
jwplayer(domId).setup(args);
});
},
isIE8: function() {
return (jQuery.support.opacity == false);
},
playerUrl: function() {
var playerUrl = BPlayer.findBaseUrl(window);
if(playerUrl == null) {
playerUrl = "/olat/raw/_noversion_/";
}
playerUrl += "movie/tinyMCE/movieViewer.swf";
return playerUrl;
},
playerJsUrl: function() {
var playerUrl = BPlayer.findBaseUrl(window);
if(playerUrl == null) {
playerUrl = "/olat/raw/_noversion_/";
}
playerUrl += "movie/player.jw.js";
return playerUrl;
},
findBaseUrl: function(win) {
if (win.o_info) return win.o_info.o_baseURI;
else if (win.opener) return BPlayer.findBaseUrl(win.opener);
else if (win.parent) return BPlayer.findBaseUrl(win.parent);
else return null;
},
convertInSeconds: function (time) {
if(typeof time != 'undefined' || time == null) return 0;//default
if(!time.length) return time;//already a number
if(time.length == 0) return 0;
if(time.indexOf('.') > 0){
time = time.substring(0, time.indexOf('.'));
}
var sepIndex = time.lastIndexOf(':');
if(sepIndex > 0) {
var chunkSec = time.substring(sepIndex+1,time.length);
var timeInSec = parseInt(chunkSec);
time = time.substring(0,sepIndex);
sepIndex = time.lastIndexOf(':');
if(sepIndex > 0) {
var chunkMin = time.substring(sepIndex+1,time.length);
timeInSec += 60 * parseInt(chunkMin);
}
time = time.substring(0,sepIndex);
if(time.length > 0) {
timeInSec += 60 * 60 * parseInt(time);
}
return timeInSec;
} else return time;
}
};