Files
teachingtechYT.github.io/js/videobox.js
2020-08-10 17:13:28 +10:00

173 lines
5.2 KiB
JavaScript

/*
* VideoBox
* Example and Documentation: https://github.com/tedktedk/videobox/blob/master/README.md
*
* Version: 1.1
*
* Copyright (c) 2016 Ted k'
* http://tedk.com.br/
*
* Dual licensed under the MIT or GPL Version 2 licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/
(function($){
$.fn.extend({
videoBox: function(options){
var obj = $(this);
var tag_v = document.createElement("script");
var firstScriptTag = document.getElementsByTagName("script")[0];
var defaults_yt = {
autohide: 2,
autoplay: 0,
cc_load_policy: 1,
color: "",
controls: 1,
disablekb: 0,
enablejsapi: 0,
fs: 1,
hl: "",
iv_load_policy: 1,
loop: 0,
modestbranding: 1,
showinfo: 1,
height: 390,
width: 640
};
var defaults_vm = {
width: 640,
height: 360,
loop: false,
autoplay: false,
byline: true,
color: "00adef",
maxheight: "",
maxwidth: "",
portrait: true,
title: ""
};
var defaults_k = {
partner_id: "243342",
uiconf_id: "12905712",
entry_id: "0_uka1msg4",
width: 640,
height: 360,
switchOnResize: false,
simpleFormat: true,
displayMode: "sizebitrate",
inlineScript: false,
hideSource: null,
autoPlay: false
};
var options_yt = $.extend(defaults_yt, options);
var options_vm = $.extend(defaults_vm, options);
var options_k = $.extend(defaults_k, options);
$.each( obj, function( key, value ){
var _this = $(value);
if (_this.attr("data-youtube")){
tag_v.id = "VIDEOBOX_createTag_y";
if (!document.getElementById("VIDEOBOX_createTag_y")){
tag_v.src = "https://www.youtube.com/iframe_api";
firstScriptTag.parentNode.insertBefore(tag_v, firstScriptTag);
}
}
else if (_this.attr("data-vimeo")){
var randomID = "VIDEOBOX_" + Math.floor(Math.random() * 100) + key;
var returnID = _this.attr("data-vimeo").match(/https?:\/\/(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?)/);
tag_v.id = "VIDEOBOX_createTag_v";
_this.attr("id", randomID);
if (!document.getElementById("VIDEOBOX_createTag_v")){
tag_v.src = "https://player.vimeo.com/api/player.js";
firstScriptTag.parentNode.insertBefore(tag_v, firstScriptTag);
}
tag_v.addEventListener("load", function(e){
options_vm.id = returnID[3];
return new Vimeo.Player(document.getElementById(randomID), options_vm);
}, false);
}
else if (_this.attr("data-kaltura")){
var randomID = "VIDEOBOX_k_" + Math.floor(Math.random() * 100) + key;
tag_v.id = "VIDEOBOX_createTag_k";
_this.attr("id", randomID);
_this.attr("itemprop", "video");
_this.attr("itemscope", true);
_this.attr("itemtype", "http://schema.org/VideoObject");
_this.css({ "width": options_k.width + "px", "height": options_k.height + "px" });
if (!document.getElementById("VIDEOBOX_createTag_k")){
tag_v.src = "https://cdnapisec.kaltura.com/p/" + options_k.partner_id + "/sp/" + options_k.partner_id + "00/embedIframeJs/uiconf_id/" + options_k.uiconf_id + "/partner_id/" + options_k.partner_id + "";
firstScriptTag.parentNode.insertBefore(tag_v, firstScriptTag);
}
tag_v.addEventListener("load", function(e){
kWidget.embed({
targetId: randomID,
wid: "_" + options_k.partner_id,
uiconf_id: options_k.uiconf_id,
entry_id: options_k.entry_id,
flashvars: {
"sourceSelector": {
"plugin": true,
"switchOnResize": options_k.switchOnResize,
"simpleFormat": options_k.simpleFormat,
"displayMode": options_k.displayMode,
"hideSource": options_k.hideSource
},
"mediaProxy.preferedFlavorBR": "1600",
"autoPlay": options_k.autoPlay,
"inlineScript": options_k.inlineScript
}
});
}, false);
}
});
window.onYouTubeIframeAPIReady = function(){
$.each( obj, function( key, value ){
var _this = $(value);
var randomID = "VIDEOBOX_" + Math.floor(Math.random() * 100) + key;
if (_this.attr("data-youtube")){
_this.attr("id", randomID);
var returnID = _this.attr("data-youtube").match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);
return new YT.Player(randomID, {
height: options_yt.height,
width: options_yt.width,
videoId: returnID[1],
playerVars: {
"autohide": options_yt.autohide,
"autoplay": options_yt.autoplay,
"cc_load_policy": options_yt.cc_load_policy,
"color": options_yt.color,
"controls": options_yt.controls,
"disablekb": options_yt.disablekb,
"enablejsapi": options_yt.enablejsapi,
"fs": options_yt.fs,
"hl": options_yt.hl,
"iv_load_policy": options_yt.iv_load_policy,
"loop": options_yt.loop,
"modestbranding": options_yt.modestbranding,
"showinfo": options_yt.showinfo,
"height": options_yt.height,
"width": options_yt.width
}
});
}
});
};
}
});
})(jQuery);