Flowplayer 3.1.1. adds support for so-called "instream clips" which are playlists defined for an individual clip. What this means is that now you can play short video clips within the main video at pre-defined times. For example, you can play a short video clip on the third second of the main video and when the instream clip ends, the main video clip will resume playing from where it was when the instream clip began. Click on the following splash screen and you'll see a demonstration of the previously described scenario.
The main video even continues loading into memory during the playback of the instream video.
You can have an unlimited number of instream clips for a single video clip and they also can be played at the
beginning (pre-roll) and at the end (post-roll) of the main video. Or, if you have a playlist, all of
those videos can each have their own set of instream clips.
It's easy to alter the behaviour and change the appearance of the controlbar during the playback of an
instream clip. We have a new shortcut configuration notation for that.
The support for instream clips makes it easy to implement different kinds of advertising setups and
this will accelerate the development of the first 100% Open Source advertisement solution that is based
on OpenX. The development is on its way to being finished
and you can stay tuned for up-to-date information about it that will be published here in this blog.
New API methods
We have new API methods for supporting instream clips:
play(clip, instream)
The play method now has a second, additional boolean argument. If it is set to true the
player pauses the current clip in the background and starts an instream clip.
addClip(clip)
This important method can now add clips to the "main" playlist as well as add instream clips to
existing playlist entries. After this method is called, a new event onClipAdd is fired and you
can use it to trap the clip additions.
RSS playlist is a playlist that is supplied in the Media RSS format.
Flowplayer can now read this RSS file and load the playlist information from it. Here is our new
RSS playlist documentation.
The JavaScript playlist plugin has been updated to listen to the new onClipAdd and onPlaylistReplace events.
This means that when you call methods such as addClip or setPlaylist the visible playlist will
dynamically change accordingly. Look at this dynamic playlist demo
to see how it works.
The playlist plugin also notices if the player is configured with an external RSS playlist file and generates
playlist entries accordingly. See this RSS playlist demo
to see this in action.
SMIL Streaming Plugin
The SMIL streaming plugin can be used to parse SMIL files
that contain references to videos and other media files. SMIL files are used by some CDN networks such as Highwinds.
Many CDN networks use SMIL files as an additional layer to provide load balancing. This plugin will first request a
SMIL file from the CDN and then the player is redirected to an appropriate edge server depending on the user's geographical
location. The SMIL file contains the location information for the media file residing in one of the edge servers the CDN has.
The player shown above loads the config.js file and takes its configuration from that. This is especially
useful for players that are embedded with OBJECT or EMBED tags from external websites.
Now, if your video has been embedded to many external sites, you can centrally control them by modifying this single configuration file.
Live streaming
Flowplayer has had support for live streaming since version 2.2. Prior to this release the duration display on the
controlbar had been hidden on live streams. Now, it will look for the duration property on the clip and
if it has been specified, the duration display will be shown. The following live stream has a duration set to two days. You'll
see some manic activity from the Flowpalyer office at Kallio, Helsinki, Finland.
After two days we will close our live stream. Streaming powered by floobs.com. Many thanks to them. (On Thursday we're not going to be in our office at Kallio, but will be working in our home offices. So don't be too disappointed if there's not too much activity in the stream!)
Minor features and bug fixes
Many, many minor changes and bug fixes. Here are the most important ones:
Documentation
Our configuration overview documentation have been updated and should be easier to understand now. Thanks to Paul Ogilvie for this! His task has been to go through all of the configuration documents and make them shine.
Flowplayer core
Added toggleFullscreen() to the JavaScript API. You may now ask the question "can I enter fullscreen from JavaScript?".
The answer is yes and no! See this fullscreen toggle demo for answers.
The seek target position is now sent as an argument to the onBeforeSeek event. This allows you to cancel
seeking on certain intervals of the clip (by returning false in the event listener).
An important issue where the screen size was initially too small on Firefox (Mac) has been fixed. This happened around once in five occasions in embedded players.
New methods added to the API: addClip, play(clip, instream) and toggleFullscreen.
A very important fix for an error that caused a JavaScript error for users without Flash installed when using splash image based setups. See the following wrappper bug for more info.
An IE6 / IE7 bug in .NET environments was fixed. See this forum thread for details.
Controlbar
Added the possibility of supplying controlbar configurations in clips.
The play/pause tooltip was not changing when clicking the button if the mouse was quickly moved out and back into the button before clicking.
Captions plugin
Added a file extension parameter to the loadCaptions external method. This comes in handy if your caption file URL's don't have file extensions.
Now you can use this parameter to to supply the caption file type.
Well the people on twitter are just bumping it up.
But I see where it's headed - it's basically what MooFx or scriptaculous was at the beginning (then expanded, forked and separated into effects lib and core/dom lib).
Generally good job - common tasks and effects put into small lib. It's 7 small use cases. I wonder what you'll do when community pushes you to another 40 and the lib grows to 100kb :) Where are sliders, fancy-checkboxes, wobly windows, grids etc ? :) How you'll tell it's too much or too little to add? What are most "common" UI and what are extravaganza-fancy-pants widgets that bloat the thing?