Version 3.4.5

This commit is contained in:
Neo committed 2025-12-19 00:38:12 -08:00
1 parent fb6b5baabc
commit e4478369d8
1360 files changed
+228921 -179445

No files matched your search

-14
View File
@@ -1,17 +1,3 @@
========================================================================
PLEASE NOTE: Invision Power Services, Inc has been granted permission
to redistribute the flowplayer JS and SWF files regardless of the GPL
that it is usually protected under.
For clarification, please contact either:
mmecham at invisionpower . com
info at flowplayer . org
The GPL is only shown below as a reference and incase you decide to
distribute it further.
========================================================================
The Flowplayer Free version is released under the
GNU GENERAL PUBLIC LICENSE Version 3 (GPL).
+111 -2
View File
@@ -1,9 +1,118 @@
Version history:
3.2.14
------
- #614 when the clip ends if the next clip in the provider has a different provider close the provider stream.
- #627 only detach / attach the display on start events which causes issues in buffering events after a seek in stagevideo.
- #627 re-enable stagevideo state change listeners if stagevideo is available or detach the fullscreen events on first call.
- #9 when replaying from stopping, connection does not receive callbacks anymore.
- #15 fixes for #627, handle the display init on startup.
3.2.13
------
- Updated to automatically load the latest controls and audio plugins
- #612 add some logging for the stagevideo render state to determine what mode the hardware acceleration is in for various systems.
- #628 opera browsers do not return filesize correctly for latest flash players so require to use load completion instead which may help with gzipped files also.
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
-----
- Added new property clip.backBufferLength, to be used with FMS 3.5
- Adds support for StageVideo. To enable it set clip.accelerated to true.
- Tries to reload two times if the stream is not initially found. Also does 3 connection attempts if the connection fails with RTMP.
- Support for FMS slow motion
- Support for thumbnails in RSS files
- Added onPlayStatus clip event handler on NetStreamClient.
- Added new clip events for stream switching onSwitchFailed and onSwitchComplete
- made it possible to replay a clip using play(<current_clip's_index>)
Fixes:
- fixed to dispatch onStart also when replaying the previous clip, now the JS controlbar again works when replaying
- cuepoints were fired multiple times when there is a playlist with several clips. Issue #150.
- fixed XML parsing error when metadata's keys contains dashes
- backgroundImage css property can now be set to "none" to be removed
- fixed the facts that clips in a playlist were cut off by a fraction in the end
- fullScreenOnly now works in conjunction with displayTime
- JS plugins now handles grouped syntax like flowplayer("a.player" /*...*/ )
- JS function setClip can now be used to add listeners on the new Clip
- different players with the same configuration stored in a variable can now use JS plugins
- using linkUrl now works when calling JS function setClip
- zIndex for plugins works fine now, issue #302
- onLastSecond was fired twice, issue #300
- fixed license key verification on subdomains, issue #318
- fixed XSS vulnerability with linkUrls. Thank you Szymon Gruszecki for discovering and reporting this to us. Issue #329.
- fixed switch stream api support in paused state. #279.
- added switching state properties. #339
- fixed the stopBuffering() API method to close the NetConnection and to clear the screen
- Issue #355 setup targeting for Flash 10.0 and 10.1 to provide support for Flash 10.0 without Stagevideo requirements.
- fixed #364, NetConnection unnecessary closed/reconnected when the netConnection does not change from clip to clip
- xss fix for flashembed #357
- Issue #384 added links support in context menus with configuration { url: "domain.com", target: "_blank"} which will work in embedded players.
- #378, javascript method loadPluginWithConfig is unavailable and non existant. Documentation updated required to remove this and updates for loadPlugin like so
this.loadPlugin("content","../flowplayer.content.swf", { html: "test", top: 30 }); or
this.loadPlugin("content","../flowplayer.content.swf", { html: "test" }, function() {
this.css({ top: 30 });
});
- #191 send the resume event, and no stop event first before reconnecting due to a connection timeout so the player comes out of a paused state correctly.
- #363 pause stream after metadata not beforehand or else no metadata is sent for rtmp clips .
- #363 silent seek and force to seek to a keyframe or else video frame will not display initially when paused.
- #375 clearing the event listeners when adding new video displays prevents new events being added when the playlist is replaced.
- #391 add message argument to connection failure callback required by some connection providers.
- #363 add overridable pause to frame for different seek functionality between http and rtmp.
- #392 possible fix for extensions with no filetypes like rtmp flv clips, require positive index check.
- #395 apply buffer animation status to VOD streams only.
- #375 possible fix when replacing the playlist in onBeforeFinish, move replay button to onFinish.
- #390 correct seek back to a valid time on invalid seeking while seeking in the buffer.
- #404 implement netstreamplayoptions for http streams, resets the stream or start loading a new stream.
- fixed an issue in parsing JSON config that contains several comments separated by whitespace
- new clip property 'stopLiveOnPause'
- #415 regression issue with #395, stop the buffering animation correctly.
- #414 problem appears again for very short clips with invalid seek times, make it step back 1 second from the invalid seek time to seek the buffer correctly.
- #416 enable seekableOnBegin to enable the scrubbar correctly when autobuffering.
- #423 add the . to clip type extension checks or else files with known extension postfixes within them will be chosen instead.
- #426 when a plugin width is set to a percentage, x/y is required to be floored or else it will affect the animation engine. specifically for the autohide function.
- #430 adding event listeners for netconnection to obtain certain events.
- #430 clear buffering status on connection failure.
- #430 clear buffering status on stream failure.
- #412 check for empty baseurl or else player url is appended and affects the url parsing.
- #439 check for all rtmp streaming protocols when checking for rtmp urls.
- #442 fix for code error in the javascript api.
- #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
-----
- Loads the new controlbar plugin version 3.2.5. No other functional changes.
- Loads the new controlbar plugin version 3.2.5.
Fixes:
- Fixed 'orig' scaling in fullscreen: http://flowplayer.org/forum/2/10274#post-52646
3.2.6
-----
+24
View File
@@ -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 <http://www.gnu.org/licenses/>.
*
* 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];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var z=q._api().fp_getPlugin(p);if(!z){return}i(o,z);delete o.methods;if(!u){m(z.methods,function(){var B=""+this;o[B]=function(){var C=[].slice.call(arguments);var D=q._api().fp_invoke(p,B,C);return D==="undefined"||D===undefined?o:D}});u=true}}var A=s[w];if(A){var y=A.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}return y}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&v.fp_play!==undefined&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}if(J){J.cached=true;j(x,"onLoad",J)}flashembed(q,G,{config:t})};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){if(v.fp_isFullscreen()){v.fp_toggleFullscreen()}v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};if(/WebKit/i.test(navigator.userAgent)&&!/Chrome/i.test(navigator.userAgent)){setTimeout(I,0)}else{I()}}else{if(J){J(false)}}return w},getClipLine truncated
Binary file not shown.
Binary file not shown.