diff --git a/lib/flowplayer/README.txt b/lib/flowplayer/README.txt
index 7bdb7bd1c5c..742633c27a5 100644
--- a/lib/flowplayer/README.txt
+++ b/lib/flowplayer/README.txt
@@ -1,8 +1,35 @@
Version history:
+3.2.13
+------
+- Updated to automatically load the latest controls and audio plugins
+
+3.2.12
+------
+- new flowplayer.js version 3.2.11,
+ fixes removing the player in fullscreen mode leaves Android locked in landscape orientation (#511)
+- #586 add a bitrate label with a new namespace attribute fp:bitratelabel.
+- #583 fixes for handling the fullscreenOnly property better
+- #494 with relative filenames with a root path strip the baseurl of paths first.
+
+3.2.11
+------
+- new flowplayer.js, now requires Flash 10.1 as the minimum flash version
+- #526 allow click through event for flash installation message when using div containers.
+- #508 disabling the stagevideo screen mask, canvas is visible without it, this was causing issues with the display list.
+- #443 adding accessibility option to the playbuttonoverlay.
+
+
+3.2.10
+------
+- Fixed #514, scrubbing was broken
+- new flowplayer.js version 3.2.9, fixes #510
+
3.2.9
-----
- Fixed #490, controlbar background, buffer bar and progress bar colors were all reset to white
+- #503 Update viewport when stage is added to obtain the coordnates correctly. Update viewport when in and out of fullscreen.
+- #508 stage video mask was being added to the top layer and hiding all children.
3.2.8
-----
@@ -69,6 +96,7 @@ this.loadPlugin("content","../flowplayer.content.swf", { html: "test" }, functi
- #461 when we have a clip base url set, we need the complete clip url sent to play2 for http streams.
- #470 check for a playlist when replacing the playlist with an rss feed.
- #494 regression issued caused by #412, enable base url correctly.
+- #30 regression caused by character replacements, removing for now and let end user deal with them.
3.2.7
-----
diff --git a/lib/flowplayer/README_audio.txt b/lib/flowplayer/README_audio.txt
index 04a2f27b6d8..746c5ee8bbd 100644
--- a/lib/flowplayer/README_audio.txt
+++ b/lib/flowplayer/README_audio.txt
@@ -1,5 +1,18 @@
Version history:
+3.2.10
+------
+- #575 send the start event after begin
+- #569 if the playlist has been reset but the audio has been already buffered, set the duration and start event.
+- #582 fixes for metadata events dispatching in playlists and when replaying same audio item, cleanup duration updating once download has completed,
+fixes for clearing the previous cover image display.
+- #611 close the channel and sound on stream not found errors.
+
+3.2.9
+-----
+- #501 fixes to dispatch start state correctly.
+- #501 use the sound channel to listen for a complete event to finish correctly.
+
3.2.8
-----
Fixes:
diff --git a/lib/flowplayer/flowplayer-3.2.8.js b/lib/flowplayer/flowplayer-3.2.11.js
similarity index 96%
rename from lib/flowplayer/flowplayer-3.2.8.js
rename to lib/flowplayer/flowplayer-3.2.11.js
index ee42b3c991f..c6e51cf5061 100644
--- a/lib/flowplayer/flowplayer-3.2.8.js
+++ b/lib/flowplayer/flowplayer-3.2.11.js
@@ -1,5 +1,5 @@
/*
- * flowplayer.js 3.2.8. The Flowplayer API
+ * flowplayer.js 3.2.11. The Flowplayer API
*
* Copyright 2009-2011 Flowplayer Oy
*
@@ -18,8 +18,8 @@
* You should have received a copy of the GNU General Public License
* along with Flowplayer. If not, see .
*
- * Date: 2011-12-30 12:34:08 -0500 (Fri, 30 Dec 2011)
- * Revision: 761
+ * Date: 2012-06-16 10:34:45 -0400 (Sat, 16 Jun 2012)
+ * Revision: 808
*/
(function () {
function g(o) {
@@ -373,6 +373,9 @@
D = true;
try {
if (v) {
+ if (v.fp_isFullscreen()) {
+ v.fp_toggleFullscreen()
+ }
v.fp_close();
w._fireEvent("onUnload")
}
@@ -468,7 +471,7 @@
}
return w
}, getVersion:function () {
- var I = "flowplayer.js 3.2.8";
+ var I = "flowplayer.js 3.2.11";
if (w.isLoaded()) {
var H = v.fp_getVersion();
H.push(I);
@@ -615,7 +618,7 @@
return P
};
function B() {
- q.innerHTML = ''; // Moodle hack - we do not want splashscreens, unfortunately there is not switch to disable them
+ q.innerHTML=''; // Moodle hack - we do not want splashscreens, unfortunately there is not switch to disable them
if ($f(q)) {
$f(q).getParent().innerHTML = "";
p = $f(q).getIndex();
@@ -776,7 +779,7 @@
if (typeof t == "string") {
t = {src:t}
}
- t = i({bgcolor:"#000000", version:[9, 0], expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf", cachebusting:false}, t);
+ t = i({bgcolor:"#000000", version:[10, 1], expressInstall:"http://releases.flowplayer.org/swf/expressinstall.swf", cachebusting:false}, t);
if (typeof o == "string") {
if (o.indexOf(".") != -1) {
var s = [];
@@ -823,7 +826,7 @@
}
})();
(function () {
- var h = document.all, j = "http://www.adobe.com/go/getflashplayer", c = typeof jQuery == "function", e = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/, b = {width:"100%", height:"100%", id:"_" + ("" + Math.random()).slice(9), allowfullscreen:true, allowscriptaccess:"always", quality:"high", version:[3, 0], onFail:null, expressInstall:null, w3c:false, cachebusting:false};
+ var h = document.all, j = "http://get.adobe.com/flashplayer", c = typeof jQuery == "function", e = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/, b = {width:"100%", height:"100%", id:"_" + ("" + Math.random()).slice(9), allowfullscreen:true, allowscriptaccess:"always", quality:"high", version:[3, 0], onFail:null, expressInstall:null, w3c:false, cachebusting:false};
if (window.attachEvent) {
window.attachEvent("onbeforeunload", function () {
__flash_unloadHandler = function () {
@@ -882,7 +885,7 @@
}
}
f = e.exec(f);
- return f ? [f[1], f[3]] : [0, 0]
+ return f ? [1 * f[1], 1 * f[(f[1] * 1 > 9 ? 2 : 3)] * 1] : [0, 0]
}, asString:function (l) {
if (l === null || l === undefined) {
return null
@@ -895,13 +898,11 @@
case"string":
l = l.replace(new RegExp('(["\\\\])', "g"), "\\$1");
l = l.replace(/^\s?(\d+\.?\d*)%/, "$1pct");
- l = l.replace(/(%)/g, "%25").replace(/'/g, "\\u0027").replace(/"/g, "\\u0022").replace(/&/g, "%26");
return'"' + l + '"';
case"array":
- return"[" + a(l,
- function (o) {
- return g.asString(o)
- }).join(",") + "]";
+ return"[" + a(l,function (o) {
+ return g.asString(o)
+ }).join(",") + "]";
case"function":
return'"function()"';
case"object":
@@ -963,7 +964,7 @@
} else {
if (!f.innerHTML.replace(/\s/g, "")) {
f.innerHTML = "
Flash version " + n.version + " or greater is required
" + (k[0] > 0 ? "Your version is " + k : "You have no flash plugin installed") + "
");
- if (f.tagName == "A") {
+ if (f.tagName == "A" || f.tagName == "DIV") {
f.onclick = function () {
location.href = j
}
@@ -992,7 +993,7 @@
}
if (c) {
- jQuery.tools = jQuery.tools || {version:"3.2.8"};
+ jQuery.tools = jQuery.tools || {version:"3.2.11"};
jQuery.tools.flashembed = {conf:b};
jQuery.fn.flashembed = function (l, f) {
return this.each(function () {
diff --git a/lib/flowplayer/flowplayer-3.2.11.min.js b/lib/flowplayer/flowplayer-3.2.11.min.js
new file mode 100644
index 00000000000..c03505f4b02
--- /dev/null
+++ b/lib/flowplayer/flowplayer-3.2.11.min.js
@@ -0,0 +1,24 @@
+/*
+ * flowplayer.js 3.2.11. The Flowplayer API
+ *
+ * Copyright 2009-2011 Flowplayer Oy
+ *
+ * This file is part of Flowplayer.
+ *
+ * Flowplayer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Flowplayer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Flowplayer. If not, see .
+ *
+ * Date: 2012-06-16 10:34:45 -0400 (Sat, 16 Jun 2012)
+ * Revision: 808
+ */
+(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[10,1],expressInstall:"http://releases.flowplayer.org/swf/expressinstall.swf",cachebusting:false},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:k(o),k(t),k(q))}}else{if(o){return new b(o,k(t),k(q))}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j="http://get.adobe.com/flashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(m,l){if(l){for(var f in l){if(l.hasOwnProperty(f)){m[f]=l[f]}}}return m}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var m,f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(o){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=m&&m.GetVariable("$version")}catch(n){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");f=m&&m.GetVariable("$version")}catch(l){}}}f=e.exec(f);return f?[1*f[1],1*f[(f[1]*1>9?2:3)]*1]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d*)%/,"$1pct");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n='";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:encodeURIComponent(location.href),MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="
Flash version "+n.version+" or greater is required
"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"
");if(f.tagName=="A"||f.tagName=="DIV"){f.onclick=function(){location.href=j}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l=="string"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:"3.2.11"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}})();
\ No newline at end of file
diff --git a/lib/flowplayer/flowplayer-3.2.14.swf b/lib/flowplayer/flowplayer-3.2.14.swf
new file mode 100644
index 00000000000..bee3b6030bb
Binary files /dev/null and b/lib/flowplayer/flowplayer-3.2.14.swf differ
diff --git a/lib/flowplayer/flowplayer-3.2.8.min.js b/lib/flowplayer/flowplayer-3.2.8.min.js
deleted file mode 100644
index 93feb7385dd..00000000000
--- a/lib/flowplayer/flowplayer-3.2.8.min.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * flowplayer.js 3.2.8. The Flowplayer API
- *
- * Copyright 2009-2011 Flowplayer Oy
- *
- * This file is part of Flowplayer.
- *
- * Flowplayer is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Flowplayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Flowplayer. If not, see .
- *
- * Date: 2011-12-30 12:34:08 -0500 (Fri, 30 Dec 2011)
- * Revision: 761
- *
- * this file was modified for Moodle - see flowplayer-3.2.8.js
- */
-(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:false},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:k(o),k(t),k(q))}}else{if(o){return new b(o,k(t),k(q))}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j="http://www.adobe.com/go/getflashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(m,l){if(l){for(var f in l){if(l.hasOwnProperty(f)){m[f]=l[f]}}}return m}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var m,f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(o){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=m&&m.GetVariable("$version")}catch(n){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");f=m&&m.GetVariable("$version")}catch(l){}}}f=e.exec(f);return f?[f[1],f[3]]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d*)%/,"$1pct");l=l.replace(/(%)/g,"%25").replace(/'/g,"\\u0027").replace(/"/g,"\\u0022").replace(/&/g,"%26");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n='";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:encodeURIComponent(location.href),MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="
Flash version "+n.version+" or greater is required
"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"