<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.projekktor.com/docs/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>HTML5 Video - Docs</title>
        <description></description>
        <link>http://www.projekktor.com/docs/</link>
        <lastBuildDate>Thu, 17 May 2012 16:32:51 +0200</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.projekktor.com/docs//www.projekktor.com/docs/lib/tpl/default/images/favicon.ico</url>
            <title>HTML5 Video - Docs</title>
            <link>http://www.projekktor.com/docs/</link>
        </image>
        <item>
            <title>Tracking Plugin - [Config Options] </title>
            <link>http://www.projekktor.com/docs/plugins_tracking?rev=1337172406&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot;&gt;&lt;a name=&quot;tracking_plugin&quot; id=&quot;tracking_plugin&quot;&gt;Tracking Plugin&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Tracking Plugin&quot; [1-32] --&gt;
&lt;h2 class=&quot;sectionedit2&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Allows tracking of all player -events and -states plus some additional client information to any pixel-image based tracker.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;General&quot; [33-178] --&gt;
&lt;h2 class=&quot;sectionedit3&quot;&gt;&lt;a name=&quot;install&quot; id=&quot;install&quot;&gt;Install&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Install&quot; [179-199] --&gt;
&lt;h3 class=&quot;sectionedit4&quot;&gt;&lt;a name=&quot;scripts&quot; id=&quot;scripts&quot;&gt;Scripts&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Load “porjekktor.tracking.js” into the head of your page and activate the plugin by stetting “addplugin” accordingly.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;Scripts&quot; [200-337] --&gt;
&lt;h3 class=&quot;sectionedit5&quot;&gt;&lt;a name=&quot;html&quot; id=&quot;html&quot;&gt;HTML&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This plugin does not require any additional markup.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;HTML&quot; [338-407] --&gt;
&lt;h3 class=&quot;sectionedit6&quot;&gt;&lt;a name=&quot;css&quot; id=&quot;css&quot;&gt;CSS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This plugin does not require any additional &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;CSS&quot; [408-473] --&gt;
&lt;h2 class=&quot;sectionedit7&quot;&gt;&lt;a name=&quot;configuration&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;Configuration&quot; [474-501] --&gt;
&lt;h3 class=&quot;sectionedit8&quot;&gt;&lt;a name=&quot;config_options&quot; id=&quot;config_options&quot;&gt;Config Options&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;respectdnt_booleantrue&quot; id=&quot;respectdnt_booleantrue&quot;&gt;respectDNT (Boolean: true}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Modern browsers feature a config option called “Do not Track” which is intended as a sort of client side tracking-opt-out. Per default the plugin respects this flag and will not track sessions of clients having this flag set.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;track_array&quot; id=&quot;track_array&quot;&gt;track (Array:[])&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
This parameter configures the tracking-behavior itself and as such the triggers for different pixel-URLs. Triggers can be bound to one ore more of the following events: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.projekktor.com/docs/events&quot; class=&quot;wikilink1&quot; title=&quot;events&quot;&gt;any event listed here&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; firstquartile - the playhead reached 25% of the duration of the vid for the very fist time&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; midpoint - the playhead reached 50% of the duration of the vid for the very fist time&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; thirdquartile - the playhead reached 75% of the duration of the vid for the very fist time&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Below find an example “track” setup:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;track:  [
  {events: [&amp;quot;state.playing&amp;quot;, &amp;quot;time.5&amp;quot;, &amp;quot;fullscreen&amp;quot;], url:&amp;quot;http://www.projekktor.com/trackpixel.png?trackingdata&amp;quot;},
  {events: [&amp;quot;firstquartile&amp;quot;, &amp;quot;state.paused&amp;quot;], url:&amp;quot;http://www.projekktor.com?quartileundpaused&amp;quot;},
  {events: [&amp;quot;mute&amp;quot;, &amp;quot;unmute&amp;quot;, &amp;#039;thirdquartile&amp;#039;], url:&amp;quot;http://www.projekktor.com?res=%{res}&amp;amp;pltfrm=%{pltfrm}&amp;quot;}
]&lt;/pre&gt;

&lt;p&gt;
“track” is an array holding unlimited sub-sets. Each set consists of an “events” array and an “url” string. 
&lt;/p&gt;

&lt;p&gt;
Lets have a closer look on the first set:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{events: [&amp;quot;state.playing&amp;quot;, &amp;quot;time.5&amp;quot;, &amp;quot;fullscreen&amp;quot;], url:&amp;quot;http://www.projekktor.com/trackpixel.png?trackingdata&amp;quot;}&lt;/pre&gt;

&lt;p&gt;
The plugin will create an &amp;lt;img/&amp;gt; element with a “src” attribute pointing to “&lt;a href=&quot;http://www.projekktor.com/trackpixel.png?trackingdata&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/trackpixel.png?trackingdata&quot;&gt;http://www.projekktor.com/trackpixel.png?trackingdata&lt;/a&gt;” whenever the player goes “fullscreen”, the user watched the first five seconds of the vid and whenever “state” becomes “playing”. That´s it.
&lt;/p&gt;

&lt;p&gt;
You can add additional client information to be sent to your tracking server by adding magic GET parameters to your tracking &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;. E.g.:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{events: [&amp;quot;mute&amp;quot;, &amp;quot;unmute&amp;quot;, &amp;#039;thirdquartile&amp;#039;], url:&amp;quot;http://www.projekktor.com?res=%{res}&amp;amp;cp =%{cp}&amp;quot;}&lt;/pre&gt;

&lt;p&gt;
Whenever the user “mutes” or “unmutes” the player and once he or she watched at least three quarters of the video the player loads a tracking pixel. Before this is done the &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; “&lt;a href=&quot;http://www.projekktor.com?res=%&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com?res=%&quot;&gt;http://www.projekktor.com?res=%&lt;/a&gt;{res}&amp;amp;pltfrm=%{cp}” will be parsed and the given placeholders will be replaced by the respective data. In this example the &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; might become: “&lt;a href=&quot;http://www.projekktor.com?res=800x600&amp;amp;pltfrm=Browser.Flash.Native&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com?res=800x600&amp;amp;pltfrm=Browser.Flash.Native&quot;&gt;http://www.projekktor.com?res=800x600&amp;amp;pltfrm=Browser.Flash.Native&lt;/a&gt;”
&lt;/p&gt;

&lt;p&gt;
Available placeholders so far:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{vidId} - The itemID as configured via the Projekktor playlist&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{plyId} - The playerID as set through the &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; markup (id attribute) or config option.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{title} - The title of the current item.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{r} - A random string.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{h} - The hour of the day on client side.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{m} - The minute of the hour on client side.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{s} - The second of the minute on client side.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{url} - The current &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; as provided by “window.location.href” but without hash.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{cp} - A string containing all video types the client can play natively, separated by a ”.”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{pltfrm} - A string holding all available “platforms”, separated by a ”.”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; %{res} - The client´s video resolution &amp;lt;height&amp;gt;x&amp;lt;width&amp;gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT8 SECTION &quot;Config Options&quot; [502-] --&gt;</description>
            <author>operator</author>
            <pubDate>Wed, 16 May 2012 14:46:46 +0200</pubDate>
        </item>
        <item>
            <title>VAST Plugin - [Config Options] </title>
            <link>http://www.projekktor.com/docs/plugins_vast?rev=1336910550&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit9&quot;&gt;&lt;a name=&quot;vast_plugin&quot; id=&quot;vast_plugin&quot;&gt;VAST Plugin&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;div class=&quot;notewarning&quot;&gt;The VAST Projekktor-Plugin is not available for public download. If you´re interested to get a copy please &lt;a href=&quot;http://www.spinningairwhale.com/contact&quot; class=&quot;urlextern&quot; title=&quot;http://www.spinningairwhale.com/contact&quot;&gt;get in touch&lt;/a&gt;.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT9 SECTION &quot;VAST Plugin&quot; [1-214] --&gt;
&lt;h1 class=&quot;sectionedit10&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
The Projekktor VAST plugin supports three ad types: preroll, companions and overlays. (…)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT10 SECTION &quot;General&quot; [215-331] --&gt;
&lt;h1 class=&quot;sectionedit11&quot;&gt;&lt;a name=&quot;install_preparation&quot; id=&quot;install_preparation&quot;&gt;Install / Preparation&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT11 SECTION &quot;Install / Preparation&quot; [332-368] --&gt;
&lt;h3 class=&quot;sectionedit12&quot;&gt;&lt;a name=&quot;scripts&quot; id=&quot;scripts&quot;&gt;Scripts&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Include the “projekktor.ima.js”. Make sure its loaded after “projekktor.min.js”. 
&lt;/p&gt;

&lt;p&gt;
The plugin features a callback function which is triggered in case the user´s client has an active ad-blocker. This function can be applied via the plugin´s config parametera (see below). The callback only gets the pointer to the affected player-instance as optional parameter. So, nothing special at all.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT12 SECTION &quot;Scripts&quot; [369-779] --&gt;
&lt;h3 class=&quot;sectionedit13&quot;&gt;&lt;a name=&quot;html&quot; id=&quot;html&quot;&gt;HTML&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If your want to support video related companion ads make sure you have properly placed and dimensioned &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; elements with unique “id”-attributes placed somewhere next to the player´s &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt;. The IDs must be provided as config-parameter (see below).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT13 SECTION &quot;HTML&quot; [780-1043] --&gt;
&lt;h3 class=&quot;sectionedit14&quot;&gt;&lt;a name=&quot;css&quot; id=&quot;css&quot;&gt;CSS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Once the player plays a preroll-ad it gets and additional &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;-class: “ad”. This can be utilized to customize e.g. the player´s control elements during ad-playback. Usually you will hide all control-buttons here and just keep the progress-bar, the time index and a title visible here. Below an example how this might look like within your player´s theme.css:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;.projekktor.ad .ppplay,
.projekktor.ad .pppause,
.projekktor.ad .ppnext,
.projekktor.ad .ppprev,
.projekktor.ad .ppvslider,
.projekktor.ad .ppmute,
.projekktor.ad .ppvmax,
.projekktor.ad .ppunmute,
.projekktor.ad .ppfsenter,
.projekktor.ad .pptimeleft,
.projekktor.ad .ppfseexit {
    display: none;
    border: none;
}

.projekktor.ad .ppcontrols {
    background: transparent;
    border: none;
    border: 4px solid red;
}

.projekktor.ad .pptitle {
    border: none;
    left: 5px;
}
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT14 SECTION &quot;CSS&quot; [1044-1925] --&gt;
&lt;h1 class=&quot;sectionedit15&quot;&gt;&lt;a name=&quot;configuration&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT15 SECTION &quot;Configuration&quot; [1926-1955] --&gt;
&lt;h3 class=&quot;sectionedit16&quot;&gt;&lt;a name=&quot;setup&quot; id=&quot;setup&quot;&gt;Setup&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Make sure you activate the plugin by adding it to the event dispatcher. To do so set “&lt;strong&gt;addplugins&lt;/strong&gt;” accordingly, e.g.:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;var player = projekktor(&amp;#039;#player_a&amp;#039;, {
   controls: true,
   autoplay: false,
   addplugins: [&amp;#039;ima&amp;#039;],
   playlist: [   
      {
         0: {src:&amp;#039;http://www.projekktor.com/video/mc.mp4&amp;#039;, type:&amp;quot;video/mp4&amp;quot;}
      }
   ]
});&lt;/pre&gt;

&lt;p&gt;
The plugin is now active but will do absolutely… nothing. In order to unleash it´s power you must at least apply an &lt;strong&gt;url&lt;/strong&gt; pointing to the VAST1 / VAST2 XM-feed, the content-&lt;strong&gt;type&lt;/strong&gt; of the mentioned feed (&lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; or JSONP-wrapped &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt;).
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;Usually you have a specific ad &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; per video so be aware that the plugin is configured on item-level not on player-level.
&lt;/div&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;var player = projekktor(&amp;#039;#player_a&amp;#039;, {
   controls: true,
   autoplay: false,
   addplugins: [&amp;#039;ima&amp;#039;],
   playlist: [   
      {
         0: {src:&amp;#039;http://www.projekktor.com/video/mc.mp4&amp;#039;, type:&amp;quot;video/mp4&amp;quot;},
         config: {
            plugin_ima: {
               url: &amp;#039;&amp;lt;url to your VAST feed including your partner ID and keywords&amp;gt;&amp;#039;,
               type: &amp;#039;application/xml&amp;#039;
            }
         }
      }
   ]
});&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT16 SECTION &quot;Setup&quot; [1956-3153] --&gt;
&lt;h3 class=&quot;sectionedit17&quot;&gt;&lt;a name=&quot;config_options&quot; id=&quot;config_options&quot;&gt;Config Options&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;enablecompanions_enableoverlay_enablepreroll_booleantrue&quot; id=&quot;enablecompanions_enableoverlay_enablepreroll_booleantrue&quot;&gt;enableCompanions, enableOverlay, enablePreroll (Boolean:true)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Enables or disables the respective ad type.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;url_string&quot; id=&quot;url_string&quot;&gt;url (String:&amp;#039;&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to your VAST feed including your partner ID and keywords.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;type_stringapplication_xml&quot; id=&quot;type_stringapplication_xml&quot;&gt;type (String:&amp;#039;application/xml&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Either &amp;#039;application/xml&amp;#039; or &amp;#039;application/jsonp&amp;#039;. If set to &amp;#039;application/jsonp&amp;#039; it´s assumed that the incoming data is an &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; formatted string wrapped into a JSONP function.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;overlaydelay_integer1&quot; id=&quot;overlaydelay_integer1&quot;&gt;overlayDelay (Integer:1)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If the incoming data provides overlay-information an overlay will be added to the player once the playhead reaches the &lt;em&gt;overlayDelay&lt;/em&gt; second while playing back the content video.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;companiondest_arraycompaniona_companionb_companionc&quot; id=&quot;companiondest_arraycompaniona_companionb_companionc&quot;&gt;companionDest (Array:[&amp;#039;companiona&amp;#039;, &amp;#039;companionb&amp;#039;, &amp;#039;companionc&amp;#039;])&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
An array of IDs addressing the &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt;-containers to playe the companion ads in - if any. Note that the plugin auto-evaluates the dimensions of the containers and matches them against incoming companion-data. A companion will only be displayed if there´s a free &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt;-container with accurate dimensions.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;resourcepriority_arrayimage_iframe_html_flash&quot; id=&quot;resourcepriority_arrayimage_iframe_html_flash&quot;&gt;resourcePriority (Array:[&amp;#039;image&amp;#039;, &amp;#039;iframe&amp;#039;, &amp;#039;html&amp;#039;, &amp;#039;flash&amp;#039;])&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Companions are delivered in a variety of formats. This array specifies which format to prefer in case there are multiple variants for one companion available. Per default images are prefered before iframe and html, flash is the worst case.
&lt;/p&gt;

&lt;p&gt;
You can remove one or more items from this array. Doing so the missing companion type will be ignored completely.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;adblockcallback_functionfunction_myplayer&quot; id=&quot;adblockcallback_functionfunction_myplayer&quot;&gt;adblockCallback (Function:function(myPlayer) {}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The plugin is able to detect whether an adblocker is installed and active or not. If so the function provided here will be triggered. The whole VAST mess will be skipped then and playback of the content video gets started.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;title_stringadvertisement&quot; id=&quot;title_stringadvertisement&quot;&gt;title (String:&amp;#039;advertisement&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The title to set for preroll ads. The title will be applied to the controlbar (if any). Furthermore a &amp;lt;div/&amp;gt; container with the class “adtitle” will be added to the screen holding the title.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;prerollskip_integer0&quot; id=&quot;prerollskip_integer0&quot;&gt;prerollSkip (Integer:0)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Allows to add a “skip” button to a running preroll advertisement. If set &amp;gt; 0 a &amp;lt;div/&amp;gt; will be added to the display with the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; classes “adskip” and  “locked” and filled with the &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; provided by “prerollSkipHtml”. The mentioned container will be faded in after prerollSkip/2 seconds and “lock” will turn to “unlocked” further more “prerollSkip/2” seconds later. At this point the container will become clickable.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;prerollskiphtml_stringsecs&quot; id=&quot;prerollskiphtml_stringsecs&quot;&gt;prerollSkipHtml (String:&amp;#039;%{secs}&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
A &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; string to fill the “adskip” container generated via “prerollSkip”. Can be any markup you wan to. %{secs] will be replaced with the remaining seconds to wait until the skip feature will become unlocked.
&lt;/p&gt;

&lt;p&gt;
The title to set for preroll ads.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT17 SECTION &quot;Config Options&quot; [3154-] --&gt;</description>
            <author>operator</author>
            <pubDate>Sun, 13 May 2012 14:02:30 +0200</pubDate>
        </item>
        <item>
            <title>Configuration parameters - [addplugins (Array:[])] </title>
            <link>http://www.projekktor.com/docs/configuration?rev=1336743943&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit18&quot;&gt;&lt;a name=&quot;configuration_parameters&quot; id=&quot;configuration_parameters&quot;&gt;Configuration parameters&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT18 SECTION &quot;Configuration parameters&quot; [1-40] --&gt;
&lt;h3 class=&quot;sectionedit19&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
In general Projekktor differentiates three types of config parameters: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.projekktor.com/docs/configuration?&amp;amp;#config_options_to_be_set_prior_initialization_only&quot; class=&quot;wikilink1&quot; title=&quot;configuration&quot;&gt;Those that affect the player on its whole&lt;/a&gt;&lt;/span&gt;, … &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; those that &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.projekktor.com/docs/configuration?&amp;amp;#config_options_available_per_playlist_item&quot; class=&quot;wikilink1&quot; title=&quot;configuration&quot;&gt;affect single items scheduled&lt;/a&gt;&lt;/span&gt; and&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; those that &lt;a href=&quot;http://www.projekktor.com/docs/plugins&quot; class=&quot;wikilink1&quot; title=&quot;plugins&quot;&gt;configure plugins&lt;/a&gt; / addons.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
E.g: “loop” (which makes the player loop all scheduled items permanently) affects the player. On the other hand “title” or “poster” is of interest on item-level only.
&lt;/p&gt;

&lt;p&gt;
As such &lt;em&gt;all config parameters&lt;/em&gt; shown below can be set on instantiation as described &lt;a href=&quot;http://www.projekktor.com/docs/quickinstall#custom_configuration&quot; class=&quot;wikilink1&quot; title=&quot;quickinstall&quot;&gt;here&lt;/a&gt;. Parameters set this way will be used for the player and - where applicable - as defaults for all items in schedule. 
&lt;/p&gt;

&lt;p&gt;
You should know: All this mess is to avoid breaking the time/space continuum and prevent strange effects regarding the player itself. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT19 SECTION &quot;General&quot; [41-979] --&gt;
&lt;h2 class=&quot;sectionedit20&quot;&gt;&lt;a name=&quot;config_options_to_be_set_prior_initialization_only&quot; id=&quot;config_options_to_be_set_prior_initialization_only&quot;&gt;Config options to be set prior initialization only&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT20 SECTION &quot;Config options to be set prior initialization only&quot; [980-1043] --&gt;
&lt;h3 class=&quot;sectionedit21&quot;&gt;&lt;a name=&quot;cookiename_stringqwprojaaekktor&quot; id=&quot;cookiename_stringqwprojaaekktor&quot;&gt;cookieName (String:&amp;#039;qwprojaaekktor&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the name of the cookie to store userspecific, permanent information and settings in.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT21 SECTION &quot;cookieName (String:'qwprojaaekktor')&quot; [1044-1182] --&gt;
&lt;h3 class=&quot;sectionedit22&quot;&gt;&lt;a name=&quot;cookieexpiry_integer356&quot; id=&quot;cookieexpiry_integer356&quot;&gt;cookieExpiry (Integer:356)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Days to keep the cookie alive.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT22 SECTION &quot;cookieExpiry (Integer:356)&quot; [1183-1253] --&gt;
&lt;h3 class=&quot;sectionedit23&quot;&gt;&lt;a name=&quot;plugins_arraydisplay_controlbar&quot; id=&quot;plugins_arraydisplay_controlbar&quot;&gt;plugins (Array:[&amp;#039;display&amp;#039;, &amp;#039;controlbar&amp;#039;])&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Plugins to load on instance initialization. Plugins are automatically extending the projekktorPluginInterface class.
The order how the plugins are set here is important because they are added from z-index 0 to n one by one to the player &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt;. As such it is useful to add the “Display” plugin always first.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT23 SECTION &quot;plugins (Array:['display', 'controlbar'])&quot; [1254-1612] --&gt;
&lt;h3 class=&quot;sectionedit24&quot;&gt;&lt;a name=&quot;addplugins_array&quot; id=&quot;addplugins_array&quot;&gt;addplugins (Array:[])&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Adds one plugin or more plugins to the player. Alternative to “plugins” above. Will be merged with it.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT24 SECTION &quot;addplugins (Array:[])&quot; [1613-1750] --&gt;
&lt;h3 class=&quot;sectionedit25&quot;&gt;&lt;a name=&quot;reelparser_functionfunction_data_return_data&quot; id=&quot;reelparser_functionfunction_data_return_data&quot;&gt;reelParser (function:function(data){return data;})&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor can read external playlists loaded via Ajax. Those playlists can either be “&lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt;” or “JSON formatted and should follow the &lt;a href=&quot;http://www.projekktor.com/docs/playlists&quot; class=&quot;wikilink1&quot; title=&quot;playlists&quot;&gt;Projekktor playlist scheme&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Nevertheless it´s possible to read different formats, e.g. &lt;acronym title=&quot;Rich Site Summary&quot;&gt;RSS&lt;/acronym&gt; feeds. The incoming data must be reformatted to a valid playlist then. This is where “reelParser” comes in handy. Once the Ajax request was successful “reelParser” is called and gets the raw input data as parameter. Inside you can hack your alchemy and return a valid Projekktor playlist.
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;Don´t trigger any further asynchronous operations here. This will break iDevice-support instantly.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT25 SECTION &quot;reelParser (function:function(data){return data;})&quot; [1751-2466] --&gt;
&lt;h3 class=&quot;sectionedit26&quot;&gt;&lt;a name=&quot;cssclassprefix_stringpp&quot; id=&quot;cssclassprefix_stringpp&quot;&gt;cssClassPrefix (String:&amp;#039;pp&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Prefix added to all css-classnames used by the player in order to avoid conflicts with existing &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;.1
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT26 SECTION &quot;cssClassPrefix (String:'pp')&quot; [2467-2609] --&gt;
&lt;h3 class=&quot;sectionedit27&quot;&gt;&lt;a name=&quot;platforms_arraybrowser_ios_native_flash&quot; id=&quot;platforms_arraybrowser_ios_native_flash&quot;&gt;platforms (Array:[&amp;#039;browser&amp;#039;, &amp;#039;ios&amp;#039;, &amp;#039;native&amp;#039;, &amp;#039;flash&amp;#039;])&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A prioritized collection of enabled platforms.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Background:&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
There are several “player models” available for Projekktor. A &lt;em&gt;model&lt;/em&gt; handles all the stuff to create the and interact with a given media object. E.g. the model “FlashVideo” does the Flash-Embed mess, assigns appropriate parameter to the SWF-movie and handles the Javascript interaction via Flash´s “External Interface”. 
&lt;/p&gt;

&lt;p&gt;
The fact that the model uses Flash is indicated by a property called “platform”. In this example, guess what, this property has the value “flash”. 
&lt;/p&gt;

&lt;p&gt;
There are other models using other platforms. One model handles “ios” specific mechanics. “native” models handle media using the browser´s native &amp;lt;video&amp;gt; and &amp;lt;audio&amp;gt; elements and “browser”-models handle the common stuff like images, iframes and html markup (in fact the “browser”-models are special ones but this is an other story to be told later).
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;So, &lt;acronym title=&quot;What the f***&quot;&gt;WTF?&lt;/acronym&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
The default value [&amp;#039;browser&amp;#039;, &amp;#039;ios&amp;#039;, &amp;#039;native&amp;#039;, &amp;#039;flash&amp;#039;] tells the player that it can use four different platforms. BUT let´s say we have a &amp;lt;video&amp;gt;-capable browser featuring the H.264 codec and with Flash installed. In fact we now have two possible platforms to handle this: “native” and “flash”. In our default setup “native” has a lower “platforms”-array index than “flash” and the player will use the native-platform instead of flash. Hence per default “Flash” is configured to be the worst case.
&lt;/p&gt;

&lt;p&gt;
Lets say you want to make the player ignore Flash completely even if the client has the plugin installed you can rewrite “platforms” to [&amp;#039;browser&amp;#039;, &amp;#039;ios&amp;#039;, &amp;#039;native&amp;#039;] and all is good.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT27 SECTION &quot;platforms (Array:['browser', 'ios', 'native', 'flash'])&quot; [2610-4273] --&gt;
&lt;h3 class=&quot;sectionedit28&quot;&gt;&lt;a name=&quot;iframe_booleanfalse&quot; id=&quot;iframe_booleanfalse&quot;&gt;iframe (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If set “true”, Projekktor assumes to live within an iframe and will act accordingly (used for embedding). 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT28 SECTION &quot;iframe (Boolean:false)&quot; [4274-4415] --&gt;
&lt;h3 class=&quot;sectionedit29&quot;&gt;&lt;a name=&quot;loop_booleanfalse&quot; id=&quot;loop_booleanfalse&quot;&gt;loop (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables playlist loop.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT29 SECTION &quot;loop (Boolean:false)&quot; [4416-4482] --&gt;
&lt;h3 class=&quot;sectionedit30&quot;&gt;&lt;a name=&quot;autoplay_booleanfalse&quot; id=&quot;autoplay_booleanfalse&quot;&gt;autoplay (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables autoplay / autostart.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT30 SECTION &quot;autoplay (Boolean:false)&quot; [4483-4560] --&gt;
&lt;h3 class=&quot;sectionedit31&quot;&gt;&lt;a name=&quot;ignoreattributes_booleanfalse&quot; id=&quot;ignoreattributes_booleanfalse&quot;&gt;ignoreAttributes (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If Projekktor is pumped into an &amp;lt;audio&amp;gt; or &amp;lt;video&amp;gt; container usually the element-attributes will overwrite given configuration parameters. Setting this to “false” will turn this behavior off. Affected config parameters are “autoplay”, “controls”, “width” and “height”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT31 SECTION &quot;ignoreAttributes (Boolean:false)&quot; [4561-4874] --&gt;
&lt;h3 class=&quot;sectionedit32&quot;&gt;&lt;a name=&quot;continuous_booleantrue&quot; id=&quot;continuous_booleantrue&quot;&gt;continuous (Boolean:true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables conitnuous playback. If enabled the player - once started - will play each playlist item one by one automatically and return to IDLE mode once all playlist items are played back and “loop” is “false”.
&lt;/p&gt;

&lt;p&gt;
In case “continuous” is “false” the player will play the actual media item. Once finished it increases the internal playlist-position-pointer and sets the player to IDLE which brings up the poster for the new playlist item. So, one more user interaction is required to start the new video.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT32 SECTION &quot;continuous (Boolean:true)&quot; [4875-5423] --&gt;
&lt;h3 class=&quot;sectionedit33&quot;&gt;&lt;a name=&quot;playlist_array&quot; id=&quot;playlist_array&quot;&gt;playlist (Array:[])&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
An array of objects featuring the &lt;a href=&quot;http://www.projekktor.com/docs/playlists&quot; class=&quot;wikilink1&quot; title=&quot;playlists&quot;&gt;Projekktor playlist scheme&lt;/a&gt; to schedule one or more media items.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT33 SECTION &quot;playlist (Array:[])&quot; [5424-5567] --&gt;
&lt;h3 class=&quot;sectionedit34&quot;&gt;&lt;a name=&quot;height_integer0&quot; id=&quot;height_integer0&quot;&gt;height (Integer:0)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The height of the player in pixels. In case of “0” the player will use the destination´s container height but at least “minHeight”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT34 SECTION &quot;height (Integer:0)&quot; [5568-5731] --&gt;
&lt;h3 class=&quot;sectionedit35&quot;&gt;&lt;a name=&quot;width_integer0&quot; id=&quot;width_integer0&quot;&gt;width (Integer:0)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The width of the player in pixels. In case of “0” the player will use the destination´s container width but at least “widthHeight”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT35 SECTION &quot;width (Integer:0)&quot; [5732-5894] --&gt;
&lt;h3 class=&quot;sectionedit36&quot;&gt;&lt;a name=&quot;minheight_integer40&quot; id=&quot;minheight_integer40&quot;&gt;minHeight (Integer:40)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The minimum height of the player.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT36 SECTION &quot;minHeight (Integer:40)&quot; [5895-5963] --&gt;
&lt;h3 class=&quot;sectionedit37&quot;&gt;&lt;a name=&quot;minwidth_integer40&quot; id=&quot;minwidth_integer40&quot;&gt;minWidth (Integer:40)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The minimum width of the player.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT37 SECTION &quot;minWidth (Integer:40)&quot; [5964-6031] --&gt;
&lt;h3 class=&quot;sectionedit38&quot;&gt;&lt;a name=&quot;messages_objectsee_below&quot; id=&quot;messages_objectsee_below&quot;&gt;messages (Object:{... see below... })&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A set of messages shown in case of errors / on testcards.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  
  // flash &amp;amp; native:
  0:&amp;#039;An error occurred.&amp;#039;,
  1:&amp;#039;You aborted the media playback. &amp;#039;,
  2:&amp;#039;A network error caused the media download to fail part-way. &amp;#039;,
  3:&amp;#039;The media playback was aborted due to a corruption problem. &amp;#039;,
  4:&amp;#039;The media (%{file}) could not be loaded because the server or network failed.&amp;#039;,
  5:&amp;#039;Sorry, your browser does not support the media format of the requested file (%{type}).&amp;#039;,
  6:&amp;#039;Your client is in lack of the Flash Plugin V%{flashver} or higher.&amp;#039;,
  7:&amp;#039;No media scheduled.&amp;#039;,
  8: &amp;#039;! Invalid media model configured !&amp;#039;,
  9: &amp;#039;File (%{file}) not found.&amp;#039;,
  97:&amp;#039;No media scheduled.&amp;#039;,
  98:&amp;#039;Invalid or malformed playlist data!&amp;#039;,
  99:&amp;#039;Click display to proceed. &amp;#039;,
  100: &amp;#039;Placeholder&amp;#039;, 
  
  // youtube errors:
  500: &amp;#039;This Youtube video has been removed or set to private&amp;#039;,
  501: &amp;#039;The Youtube user owning this video disabled embedding.&amp;#039;,
  502: &amp;#039;Invalid Youtube Video-Id specified.&amp;#039;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT38 SECTION &quot;messages (Object:{... see below... })&quot; [6032-7093] --&gt;
&lt;h2 class=&quot;sectionedit39&quot;&gt;&lt;a name=&quot;config_options_available_per_playlist_item&quot; id=&quot;config_options_available_per_playlist_item&quot;&gt;Config options available per playlist item&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT39 SECTION &quot;Config options available per playlist item&quot; [7094-7149] --&gt;
&lt;h3 class=&quot;sectionedit40&quot;&gt;&lt;a name=&quot;id_string0&quot; id=&quot;id_string0&quot;&gt;ID (String:&amp;#039;0&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A unique itemID used for internal identification and tracking purposes. Randomly generated in case non is provided.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT40 SECTION &quot;ID (String:'0')&quot; [7150-7294] --&gt;
&lt;h3 class=&quot;sectionedit41&quot;&gt;&lt;a name=&quot;title_string&quot; id=&quot;title_string&quot;&gt;title (String:&amp;#039;&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A title is a title is a title.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT41 SECTION &quot;title (String:'')&quot; [7295-7356] --&gt;
&lt;h3 class=&quot;sectionedit42&quot;&gt;&lt;a name=&quot;poster_string&quot; id=&quot;poster_string&quot;&gt;poster (String:&amp;#039;&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to a poster image - will be overwritten by poster-attribute in case Projekktor is pumped into a &amp;lt;media&amp;gt; tag.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT42 SECTION &quot;poster (String:'')&quot; [7357-7502] --&gt;
&lt;h3 class=&quot;sectionedit43&quot;&gt;&lt;a name=&quot;cover_string&quot; id=&quot;cover_string&quot;&gt;cover (String:&amp;#039;&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to a cover image shown on audio playback only. If “cover” is empty “poster” will be used instead.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT43 SECTION &quot;cover (String:'')&quot; [7503-7636] --&gt;
&lt;h3 class=&quot;sectionedit44&quot;&gt;&lt;a name=&quot;controls_booleanfalse&quot; id=&quot;controls_booleanfalse&quot;&gt;controls (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables the controlbar plugin &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT44 SECTION &quot;controls (Boolean:false)&quot; [7637-7720] --&gt;
&lt;h3 class=&quot;sectionedit45&quot;&gt;&lt;a name=&quot;duration_integer0&quot; id=&quot;duration_integer0&quot;&gt;duration (Integer:0)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the duration of the played media item. Currently works for “images” only.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT45 SECTION &quot;duration (Integer:0)&quot; [7721-7832] --&gt;
&lt;h3 class=&quot;sectionedit46&quot;&gt;&lt;a name=&quot;start_integer0&quot; id=&quot;start_integer0&quot;&gt;start (Integer:0)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
start offset in seconds for randomly seekable media. (EXPERIMENTAL)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT46 SECTION &quot;start (Integer:0)&quot; [7833-7930] --&gt;
&lt;h3 class=&quot;sectionedit47&quot;&gt;&lt;a name=&quot;stop_integer0&quot; id=&quot;stop_integer0&quot;&gt;stop (Integer:0)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Stop endpoint in seconds for randomly seekable media. (EXPERIMENTAL)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT47 SECTION &quot;stop (Integer:0)&quot; [7931-8028] --&gt;
&lt;h3 class=&quot;sectionedit48&quot;&gt;&lt;a name=&quot;volume_float05&quot; id=&quot;volume_float05&quot;&gt;volume (Float:0.5)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Initial player volume while 0 is mute and 1 is full throttle.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT48 SECTION &quot;volume (Float:0.5)&quot; [8029-8123] --&gt;
&lt;h3 class=&quot;sectionedit49&quot;&gt;&lt;a name=&quot;disablepause_booleanfalse&quot; id=&quot;disablepause_booleanfalse&quot;&gt;disablePause (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables the possibility to pause a video during playback via the &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt;. &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; calls are not affected.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT49 SECTION &quot;disablePause (Boolean:false)&quot; [8124-8277] --&gt;
&lt;h3 class=&quot;sectionedit50&quot;&gt;&lt;a name=&quot;disallowskip_booleanfalse&quot; id=&quot;disallowskip_booleanfalse&quot;&gt;disallowSkip (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables the possibility to skip or search/scrub a video during playback via the &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt;. &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; calls are not affected.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT50 SECTION &quot;disallowSkip (Boolean:false)&quot; [8278-8445] --&gt;
&lt;h3 class=&quot;sectionedit51&quot;&gt;&lt;a name=&quot;fixedvolume_booleanfalse&quot; id=&quot;fixedvolume_booleanfalse&quot;&gt;fixedVolume (Boolean:false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enables / disables the possibility to alter the player volume via the &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt;. &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; calls are not affected.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT51 SECTION &quot;fixedVolume (Boolean:false)&quot; [8446-8592] --&gt;
&lt;h3 class=&quot;sectionedit52&quot;&gt;&lt;a name=&quot;imagescaling_stringaspectratio_videoscaling_stringaspectratio&quot; id=&quot;imagescaling_stringaspectratio_videoscaling_stringaspectratio&quot;&gt;imageScaling (String:&amp;#039;aspectratio&amp;#039;), videoScaling (String:&amp;#039;aspectratio&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Possible values are “fill”, “aspectratio” or “none”.
&lt;/p&gt;

&lt;p&gt;
Configures how the cover, poster or the video is scaled within the display area. “fill” stretches the source to fit the display but may deform the image / video. “aspectratio” may result in black (empty) areas but keeps the source´s aspect ratio and “none” will just center either the image or video without resizing it. This may cause black areas or a cropped image.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT52 SECTION &quot;imageScaling (String:'aspectratio'), videoScaling (String:'aspectratio')&quot; [8593-9101] --&gt;
&lt;h3 class=&quot;sectionedit53&quot;&gt;&lt;a name=&quot;playerflashmp4_stringjarisplayerswf_playerflashmp3_stringjarisplayerswf&quot; id=&quot;playerflashmp4_stringjarisplayerswf_playerflashmp3_stringjarisplayerswf&quot;&gt;playerFlashMP4 (String:&amp;#039;jarisplayer.swf&amp;#039;), playerFlashMP3 (String:&amp;#039;jarisplayer.swf&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to the (default) flash fallback component. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT53 SECTION &quot;playerFlashMP4 (String:'jarisplayer.swf'), playerFlashMP3 (String:'jarisplayer.swf')&quot; [9102-9256] --&gt;
&lt;h3 class=&quot;sectionedit54&quot;&gt;&lt;a name=&quot;streamtype_stringfile&quot; id=&quot;streamtype_stringfile&quot;&gt;streamType (String:&amp;#039;file&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Defines the streaming method. The offical Projekktor-distro currently supports:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; file - progressive download streaming (http, default)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; http - http pseudo streaming&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; rtmp - RTMP streaming - requires “flashRTMPServer” to be set.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT54 SECTION &quot;streamType (String:'file')&quot; [9257-9533] --&gt;
&lt;h3 class=&quot;sectionedit55&quot;&gt;&lt;a name=&quot;streamserver_string&quot; id=&quot;streamserver_string&quot;&gt;streamServer (String:&amp;#039;&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sometimes required in combination with “streamType”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT55 SECTION &quot;streamServer (String:'')&quot; [9534-9624] --&gt;
&lt;h3 class=&quot;sectionedit56&quot;&gt;&lt;a name=&quot;useytiframeapi_booleanfalse&quot; id=&quot;useytiframeapi_booleanfalse&quot;&gt;useYTIframeAPI (Boolean: false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Youtube offers two different player APIs: fLaSh and “iFrame” for HTML5 . Make your choice here. For mobile devices this is forced to TRUE
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT56 SECTION &quot;useYTIframeAPI (Boolean: false)&quot; [9625-9806] --&gt;
&lt;h3 class=&quot;sectionedit57&quot;&gt;&lt;a name=&quot;enableflashfallback_booleantrue&quot; id=&quot;enableflashfallback_booleantrue&quot;&gt;enableFlashFallback (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;del&gt;&lt;img src=&quot;http://www.projekktor.com/docs/lib/images/smileys/icon_exclaim.gif&quot; class=&quot;middle&quot; alt=&quot;:!:&quot; /&gt; subject for changes

Enable / Disable Flash fallback. 
&lt;/del&gt; OBSOLETE
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT57 SECTION &quot;enableFlashFallback (Boolean: true)&quot; [9807-9933] --&gt;
&lt;h3 class=&quot;sectionedit58&quot;&gt;&lt;a name=&quot;enablenativeplayback_booleantrue&quot; id=&quot;enablenativeplayback_booleantrue&quot;&gt;enableNativePlayback (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;del&gt;&lt;img src=&quot;http://www.projekktor.com/docs/lib/images/smileys/icon_exclaim.gif&quot; class=&quot;middle&quot; alt=&quot;:!:&quot; /&gt; subject for changes

Enable / Disable native media playback.&lt;/del&gt; OBSOLETE
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT58 SECTION &quot;enableNativePlayback (Boolean: true)&quot; [9934-10068] --&gt;
&lt;h3 class=&quot;sectionedit59&quot;&gt;&lt;a name=&quot;enablenativeplatform_enableflashplatform_booleantrue&quot; id=&quot;enablenativeplatform_enableflashplatform_booleantrue&quot;&gt;enableNativePlatform, enableFlashPlatform (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enable / Disable different playback methods. The most common ones are “native” (for the &amp;lt;video&amp;gt; and &amp;lt;audio&amp;gt; tags) and Flash. Setting “enable&amp;lt;platformname&amp;gt;Platform” to false is equal to strip a platform from the ”&lt;a href=&quot;http://www.projekktor.com/docs/configuration#platforms_arraybrowser_ios_native_flash&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/configuration#platforms_arraybrowser_ios_native_flash&quot;&gt;platform&lt;/a&gt;” config array.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT59 SECTION &quot;enableNativePlatform, enableFlashPlatform (Boolean: true)&quot; [10069-10462] --&gt;
&lt;h3 class=&quot;sectionedit60&quot;&gt;&lt;a name=&quot;enablekeyboard_booleantrue&quot; id=&quot;enablekeyboard_booleantrue&quot;&gt;enableKeyboard (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enable / Disable keyboard interactions with the player.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT60 SECTION &quot;enableKeyboard (Boolean: true)&quot; [10463-10561] --&gt;
&lt;h3 class=&quot;sectionedit61&quot;&gt;&lt;a name=&quot;enablefullscreen_booleantrue&quot; id=&quot;enablefullscreen_booleantrue&quot;&gt;enableFullscreen (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enable / Disable fullscreen / full viewport. If disabled all &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt; interactions forcing “fullscreen” will be discarded. &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; calls are not affected.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT61 SECTION &quot;enableFullscreen (Boolean: true)&quot; [10562-10755] --&gt;
&lt;h3 class=&quot;sectionedit62&quot;&gt;&lt;a name=&quot;enablenativefullscreen_booleantrue&quot; id=&quot;enablenativefullscreen_booleantrue&quot;&gt;enableNativeFullscreen (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Enable / Disable true &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; fullscreen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT62 SECTION &quot;enableNativeFullscreen (Boolean: true)&quot; [10756-10846] --&gt;
&lt;h3 class=&quot;sectionedit63&quot;&gt;&lt;a name=&quot;enabletestcard_booleantrue&quot; id=&quot;enabletestcard_booleantrue&quot;&gt;enableTestcard (Boolean: true)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If testcard is disabled and  in case no native-media or flash is available the player will force a filedowload. Otherwise (enableTestcard=true) a testcard with an errormessage is shown in case of any playback issue.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT63 SECTION &quot;enableTestcard (Boolean: true)&quot; [10847-11106] --&gt;
&lt;h3 class=&quot;sectionedit64&quot;&gt;&lt;a name=&quot;skiptestcard_booleanfalse&quot; id=&quot;skiptestcard_booleanfalse&quot;&gt;skipTestcard (Boolean: false)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If the scheduled playlist holds more than one item and “skipTestcard” is set TRUE in case of an error the player will proceed to the next item without showing a testcard / errormessage.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT64 SECTION &quot;skipTestcard (Boolean: false)&quot; [11107-11333] --&gt;
&lt;h3 class=&quot;sectionedit65&quot;&gt;&lt;a name=&quot;classname_string&quot; id=&quot;classname_string&quot;&gt;className (String:&amp;#039;&amp;#039;)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets an additional &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; class to the player. If configured on “item” level the class is being removed and the original classes are restored once the internal playlist pointer changes.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT65 SECTION &quot;className (String:'')&quot; [11334-11551] --&gt;
&lt;h3 class=&quot;sectionedit66&quot;&gt;&lt;a name=&quot;playbackqualities_arraysee_below&quot; id=&quot;playbackqualities_arraysee_below&quot;&gt;playbackQualities (Array:[ ... see below ... ])&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Configures automatic quality selection in case videos are provided in different resolutions and qualities. The details of this mechanics and how to use it &lt;a href=&quot;http://www.projekktor.com/docs/qualitytoggle&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/qualitytoggle&quot;&gt;are described here&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{key: &amp;#039;small&amp;#039;, minHeight: 240, minWidth: 240},
{key: &amp;#039;medium&amp;#039;, minHeight: 360, minWidth: [{ratio: 1.77, minWidth: 640}, {ratio: 1.33, minWidth: 480}]},
{key: &amp;#039;large&amp;#039;, minHeight: 480, minWidth: [{ratio: 1.77, minWidth: 853}, {ratio: 1.33, minWidth: 640}]},
{key: &amp;#039;hd1080&amp;#039;, minHeight: 1080, minWidth: [{ratio: 1.77, minWidth: 1920}, {ratio: 1.33, minWidth: 1440}]},
{key: &amp;#039;hd720&amp;#039;, minHeight: 720, minWidth: [{ratio: 1.77, minWidth: 1280}, {ratio: 1.33, minWidth: 960}]},
{key: &amp;#039;highres&amp;#039;, minHeight: 1081, minWidth: 0}           &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT66 SECTION &quot;playbackQualities (Array:[ ... see below ... ])&quot; [11552-12380] --&gt;
&lt;h2 class=&quot;sectionedit67&quot;&gt;&lt;a name=&quot;configuring_plugins&quot; id=&quot;configuring_plugins&quot;&gt;Configuring Plugins&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT67 SECTION &quot;Configuring Plugins&quot; [12381-12412] --&gt;
&lt;h3 class=&quot;sectionedit68&quot;&gt;&lt;a name=&quot;xxxx&quot; id=&quot;xxxx&quot;&gt;xxxx&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT68 SECTION &quot;xxxx&quot; [12413-] --&gt;</description>
            <author>operator</author>
            <pubDate>Fri, 11 May 2012 15:45:43 +0200</pubDate>
        </item>
        <item>
            <title>Javascript API Functions - [player.setStop():Boolean] </title>
            <link>http://www.projekktor.com/docs/api?rev=1336654098&amp;do=diff</link>
            <description>
&lt;h2 class=&quot;sectionedit69&quot;&gt;&lt;a name=&quot;javascript_api_functions&quot; id=&quot;javascript_api_functions&quot;&gt;Javascript API Functions&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The documentation as listed below 
applies to Projekktor V0.7.17 or higher. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT69 SECTION &quot;Javascript API Functions&quot; [1-117] --&gt;
&lt;h2 class=&quot;sectionedit70&quot;&gt;&lt;a name=&quot;instantiation&quot; id=&quot;instantiation&quot;&gt;Instantiation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT70 SECTION &quot;Instantiation&quot; [118-144] --&gt;
&lt;h3 class=&quot;sectionedit71&quot;&gt;&lt;a name=&quot;projekktor_identifierstring_configobject_onreadyfunction_object&quot; id=&quot;projekktor_identifierstring_configobject_onreadyfunction_object&quot;&gt;projekktor(identifier:String, config:Object, onReady:Function):Object&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;em&gt;projekktor&lt;/em&gt; is the central function to create or select player instances.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;creating_instances&quot; id=&quot;creating_instances&quot;&gt;creating instances&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
To instantiate a player use &lt;em&gt;identifier&lt;/em&gt; to provide information which element(s) you want the player to sit on. &lt;em&gt;identifier&lt;/em&gt; is identical to &lt;a href=&quot;http://api.jquery.com/category/selectors/&quot; class=&quot;urlextern&quot; title=&quot;http://api.jquery.com/category/selectors/&quot;&gt;jQuery selectors&lt;/a&gt;. 
&lt;/p&gt;

&lt;p&gt;
E.g: projekktor(&amp;#039;#player_one&amp;#039;); will apply to a media-tag with the &lt;em&gt;id&lt;/em&gt; attribute &lt;em&gt;player_one&lt;/em&gt;, projekktor(&amp;#039;video&amp;#039;)); will projekktorize all &lt;em&gt;video&lt;/em&gt; elements on page and so on. Optionally you can provide a &lt;em&gt;config&lt;/em&gt; object like this: projekktor(&amp;#039;#player_one&amp;#039;,{enableFlashFallback:false});
&lt;/p&gt;

&lt;p&gt;
The “onReady” function will be triggered once the player has been initialized. The function gets the player Object as argument.
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;Chaining multiple selectors by separating them with a colon, like e.g. “video,audio” or “div.player,div.second” does not work with &lt;acronym title=&quot;Internet Explorer 6&quot;&gt;IE6&lt;/acronym&gt;,7,8. Single selectors like “audio” or “video” work fine.

&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;getting_instances&quot; id=&quot;getting_instances&quot;&gt;getting instances&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
To get an instance previously set up as described above you can simply use projekktor(); again. This time &lt;em&gt;identifier&lt;/em&gt; is a jQuery object or the &lt;em&gt;id&lt;/em&gt; of the player you want to fetch. E.g: projekktor(&amp;#039;player_a&amp;#039;).setStop(); or projekktor($(&amp;#039;#player_a&amp;#039;)).setStop();
&lt;/p&gt;

&lt;p&gt;
To get all available instances, use “*” as &lt;em&gt;identifier&lt;/em&gt;. In return you will get an array of Projekktor instances.
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;notetip&quot;&gt;If you are planing to use the &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; to manipulate the players, you should set the &lt;em&gt;id&lt;/em&gt; attribute for each media element to make your live easier. If no &lt;em&gt;id&lt;/em&gt; attribute is set, a 8-string-random id will be applied. This makes it practically impossible to identify a specific player instance during runtime. Anyhow you can of course use projekktor(&amp;#039;*&amp;#039;); to grab all available instances and iterate through them.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT71 SECTION &quot;projekktor(identifier:String, config:Object, onReady:Function):Object&quot; [145-2038] --&gt;
&lt;h2 class=&quot;sectionedit72&quot;&gt;&lt;a name=&quot;setters&quot; id=&quot;setters&quot;&gt;Setters&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;div class=&quot;notetip&quot;&gt;
All setters return &lt;em&gt;this&lt;/em&gt; in order to allow method cascading.

&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT72 SECTION &quot;Setters&quot; [2039-2142] --&gt;
&lt;h3 class=&quot;sectionedit73&quot;&gt;&lt;a name=&quot;playeraddlistener_eventstring_callbackobject_void&quot; id=&quot;playeraddlistener_eventstring_callbackobject_void&quot;&gt;player.addListener(event:String, callback:Object):Void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Adds a function as &lt;em&gt;callback&lt;/em&gt; listener for the &lt;em&gt;event&lt;/em&gt; specified. Can be applied at any time.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT73 SECTION &quot;player.addListener(event:String, callback:Object):Void&quot; [2143-2307] --&gt;
&lt;h3 class=&quot;sectionedit74&quot;&gt;&lt;a name=&quot;playerremovelistener_eventstring_callbackobject_boolean&quot; id=&quot;playerremovelistener_eventstring_callbackobject_boolean&quot;&gt;player.removeListener(event:String, callback:Object):Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Removes a previously added function from &lt;em&gt;event&lt;/em&gt; listening. &lt;em&gt;callback&lt;/em&gt; must be the same entity as used in corresponding &lt;em&gt;addListener&lt;/em&gt; call. E.g:
&lt;/p&gt;

&lt;p&gt;
WIN:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;var ApiTest =  function(data) {console.log(data)};
playerInstance.addListener(&amp;#039;*&amp;#039;,ApiTest );
playerInstance.removeListener(&amp;#039;*&amp;#039;,ApiTest );&lt;/pre&gt;

&lt;p&gt;
FAIL:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;playerInstance.addListener(&amp;#039;*&amp;#039;,function(data) {console.log(data)});
playerInstance.removeListener(&amp;#039;*&amp;#039;,function(data) {console.log(data)});&lt;/pre&gt;

&lt;p&gt;
Returns TRUE on success otherwise FALSE.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT74 SECTION &quot;player.removeListener(event:String, callback:Object):Boolean&quot; [2308-2893] --&gt;
&lt;h3 class=&quot;sectionedit75&quot;&gt;&lt;a name=&quot;playersetfile_datamixed_typestring_void&quot; id=&quot;playersetfile_datamixed_typestring_void&quot;&gt;player.setFile(data:Mixed, type:String):Void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Applies a single media item or a playlist. This will overwrite all current media and playlist data scheduled within in the player.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;data&lt;/em&gt; - Can either be an &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; or a valid &lt;a href=&quot;http://www.projekktor.com/docs/playlists#projekktor_playlist_format&quot; class=&quot;wikilink1&quot; title=&quot;playlists&quot;&gt;playlist OBJECT&lt;/a&gt;. If data is an &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; and &lt;em&gt;type&lt;/em&gt; is not a valid data exchange format (xml, json or jsonp), the &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; is interpreted as &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; pointing to a single audio- or video-file.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT75 SECTION &quot;player.setFile(data:Mixed, type:String):Void&quot; [2894-3352] --&gt;
&lt;h3 class=&quot;sectionedit76&quot;&gt;&lt;a name=&quot;playersetitem_datamixed_indexnumber_replaceboolean_void&quot; id=&quot;playersetitem_datamixed_indexnumber_replaceboolean_void&quot;&gt;player.setItem(data:Mixed, index:Number, replace:Boolean):Void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets, adds, removes or replaces a playlist item. 
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Data&lt;/em&gt; can be an object following the projekktor item scheme, an &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; string pointing to a valid media file or NULL.
If &lt;em&gt;data&lt;/em&gt; is NULL the item at &lt;em&gt;index&lt;/em&gt; will be removed from schedule (remove).
If &lt;em&gt;data&lt;/em&gt; is an Object and or an &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; and &lt;em&gt;index&lt;/em&gt; is NULL a new item will be injected to schedule (add).
&lt;em&gt;index&lt;/em&gt; indicates the schedule index to be affected. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;add&quot; id=&quot;add&quot;&gt;add&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If &lt;em&gt;index&lt;/em&gt; is out of range (less 1 or higher than the total length of the current schedule) a new item will be appended to the schedule otherwise a new item will be created on position provided.
&lt;/p&gt;

&lt;p&gt;
If &lt;em&gt;replace&lt;/em&gt; is &lt;em&gt;true&lt;/em&gt; and an item already exists at &lt;em&gt;index&lt;/em&gt; the new item will not be injected but will replace the already existing one - if any. 
&lt;/p&gt;

&lt;p&gt;
If calling this function affects the item currently playing back, the player will instantly stop and restart playback with the new data made available and without changing the “currentItem” pointer.
&lt;/p&gt;

&lt;p&gt;
If &lt;em&gt;setItem&lt;/em&gt; affects items after the currently playing one (items of an higher index than currentItem) no restart apply.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;remove&quot; id=&quot;remove&quot;&gt;remove&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If &lt;em&gt;index&lt;/em&gt; is out of range (less 1 or higher than the total length of the current schedule) the last scheduled item will be removed. Otherwise the item at the index provided gets dumped.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;replace&lt;/em&gt; has no effect while performing remove actions.
&lt;/p&gt;

&lt;p&gt;
If calling this function affects the item currently playing back, the player will instantly stop and will move the &lt;em&gt;currentItem&lt;/em&gt; pointer to the previous one.
&lt;/p&gt;

&lt;p&gt;
If &lt;em&gt;setItem&lt;/em&gt; affects an item after the currently playing one (items of an higher index than currentItem) no &lt;em&gt;previous&lt;/em&gt;-action will happen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT76 SECTION &quot;player.setItem(data:Mixed, index:Number, replace:Boolean):Void&quot; [3353-5105] --&gt;
&lt;h3 class=&quot;sectionedit77&quot;&gt;&lt;a name=&quot;playersetconfig_dataobject_destindexmixed_void&quot; id=&quot;playersetconfig_dataobject_destindexmixed_void&quot;&gt;player.setConfig(data:Object, destIndex:Mixed):Void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Was “setItemConfig” prior V0.9.0. 
&lt;/p&gt;

&lt;p&gt;
Allows to set or alter item config options during runtime. &lt;em&gt;data&lt;/em&gt; must be an object containing one or more config parameters.  Not all config options are available to be set dynamically to avoid the player to crash or react in a strange way (please refer: &lt;a href=&quot;http://www.projekktor.com/docs/configuration&quot; class=&quot;wikilink1&quot; title=&quot;configuration&quot;&gt;Configuration parameters&lt;/a&gt;).
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;destIndex&lt;/em&gt; can either be an integer describing the destination item´s position within schedule (itemIdx) or &amp;#039;*&amp;#039; which will apply &lt;em&gt;data&lt;/em&gt; to all items currently scheduled. If &lt;em&gt;destIndex&lt;/em&gt; is NULL the currently played item is manipulated. 
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;Changes on &lt;em&gt;current&lt;/em&gt; items only take immediate effect if the player state is IDLE.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT77 SECTION &quot;player.setConfig(data:Object, destIndex:Mixed):Void&quot; [5106-5839] --&gt;
&lt;h3 class=&quot;sectionedit78&quot;&gt;&lt;a name=&quot;playersetplayerposter_urlstring_void&quot; id=&quot;playersetplayerposter_urlstring_void&quot;&gt;player.setPlayerPoster(url:String):Void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the poster for the player. This poster is shown up once the player has been instantiated, autoplay is FALSE and the user did not hit play so far.
&lt;/p&gt;

&lt;p&gt;
This method is a shortcut for setItemConfig({poster:&lt;em&gt;url&lt;/em&gt;},0);
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT78 SECTION &quot;player.setPlayerPoster(url:String):Void&quot; [5840-6109] --&gt;
&lt;h3 class=&quot;sectionedit79&quot;&gt;&lt;a name=&quot;playersetplayhead_positionmixed_void_v0716&quot; id=&quot;playersetplayhead_positionmixed_void_v0716&quot;&gt;player.setPlayhead(position:mixed):Void (&amp;gt; V0.7.16)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Move the play-head to the given &lt;em&gt;position&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Position can be either in seconds (number) representing the absolute second to move the playhead to or a relative value prefixed with operators ”+” or ”-” indicating the  direction to move the playhead to. 
&lt;/p&gt;

&lt;p&gt;
E.g. assumed the playhead is on second #15, ”+5” will move it to second #20 while ”-5” will move it to #10.
&lt;/p&gt;

&lt;p&gt;
If the resulting &lt;em&gt;position&lt;/em&gt; is beyond the point of loaded media data so far and the current media type does not allow random-seeking, the play-head will be moved to the highest possible position. This function has no result. You have to listen to player events in order to check what happens. Nothing will happen at all if player´s config-option “disallowSkip” is set to TRUE.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT79 SECTION &quot;player.setPlayhead(position:mixed):Void (&gt; V0.7.16)&quot; [6110-6918] --&gt;
&lt;h3 class=&quot;sectionedit80&quot;&gt;&lt;a name=&quot;playersetvolume_volmixed_void_v0716&quot; id=&quot;playersetvolume_volmixed_void_v0716&quot;&gt;player.setVolume(vol:mixed):Void (&amp;gt; V0.7.16)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the Volume of the player to a percent mark indicated by &lt;em&gt;vol&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Volume can be either a numeric value representing the absolute volume to set, where 0 is equal to muted and 100 indicates full throttle.
Volume can also be relative - prefixed with operators ”+” or ”-” indicating the relative amount to adjust the volume to.
E.g. assumed current volume is 15%, ”+5” set it to 20%, ”-5” to 10% and so on.
&lt;em&gt;
&lt;/em&gt;
This function has no result. You have to listen to player events in order to check what happens. Nothing will happen at all if player´s config-option “fixedVolume” is set to TRUE.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT80 SECTION &quot;player.setVolume(vol:mixed):Void (&gt; V0.7.16)&quot; [6919-7572] --&gt;
&lt;h3 class=&quot;sectionedit81&quot;&gt;&lt;a name=&quot;playersetfullscreen_gofullscreenboolean_void&quot; id=&quot;playersetfullscreen_gofullscreenboolean_void&quot;&gt;player.setFullscreen(goFullscreen:Boolean):Void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the player to fullscreen / full viewport or exits from there depending if &lt;em&gt;goFullscreen&lt;/em&gt; set to TRUE (on) or FALSE (off). Does nothing if ALLOWFULLSCREEN is FALSE or if the new state is equal to the current one.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT81 SECTION &quot;player.setFullscreen(goFullscreen:Boolean):Void&quot; [7573-7851] --&gt;
&lt;h3 class=&quot;sectionedit82&quot;&gt;&lt;a name=&quot;playersetresize&quot; id=&quot;playersetresize&quot;&gt;player.setResize()&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Triggers the internal “resize” event in order to rescale relative containers. This comes in handy in cases where &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; manipulations happen due to other scripts (e.g. sliders, popups etc.)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT82 SECTION &quot;player.setResize()&quot; [7852-8070] --&gt;
&lt;h3 class=&quot;sectionedit83&quot;&gt;&lt;a name=&quot;playersetsize_widthx_heighty&quot; id=&quot;playersetsize_widthx_heighty&quot;&gt;player.setSize({width:&amp;lt;x&amp;gt;, height:&amp;lt;y&amp;gt;})&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Allows to set the player´s dimensions during runtime. Will also trigger “resize” in order to apply rescaling (if required).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT83 SECTION &quot;player.setSize({width:&lt;x&gt;, height:&lt;y&gt;})&quot; [8071-8247] --&gt;
&lt;h3 class=&quot;sectionedit84&quot;&gt;&lt;a name=&quot;playersetplaypause_boolean&quot; id=&quot;playersetplaypause_boolean&quot;&gt;player.setPlayPause():Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the player to pause if its playing or vis versa. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT84 SECTION &quot;player.setPlayPause():Boolean&quot; [8248-8345] --&gt;
&lt;h3 class=&quot;sectionedit85&quot;&gt;&lt;a name=&quot;playersetplay_boolean&quot; id=&quot;playersetplay_boolean&quot;&gt;player.setPlay():Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the player to play. If its already playing no changes apply.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT85 SECTION &quot;player.setPlay():Boolean&quot; [8346-8447] --&gt;
&lt;h3 class=&quot;sectionedit86&quot;&gt;&lt;a name=&quot;playersetpause_boolean&quot; id=&quot;playersetpause_boolean&quot;&gt;player.setPause():Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the player to pause . If its already paused no changes apply. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT86 SECTION &quot;player.setPause():Boolean&quot; [8448-8553] --&gt;
&lt;h3 class=&quot;sectionedit87&quot;&gt;&lt;a name=&quot;playersetstop_boolean&quot; id=&quot;playersetstop_boolean&quot;&gt;player.setStop():Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sets the player to stop . Will cause the playback component to stop immediately and displays the current item´s poster image. Furthermore the start-button shows up.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT87 SECTION &quot;player.setStop():Boolean&quot; [8554-8758] --&gt;
&lt;h3 class=&quot;sectionedit88&quot;&gt;&lt;a name=&quot;playersetactiveitem_itemmixed_void&quot; id=&quot;playersetactiveitem_itemmixed_void&quot;&gt;player.setActiveItem(item:mixed):void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Initializes playback of media item identified by the given &lt;em&gt;item&lt;/em&gt;. Accepts an integer representing the item to be played or a “shortcut” string as follows:
&lt;/p&gt;

&lt;p&gt;
Shortcuts:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;next&lt;/strong&gt; - Will activate the next item relatively to the currently active one&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;previous&lt;/strong&gt; - Will activate the previous item relatively to the currently active one&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;poster&lt;/strong&gt; - Will send the player to IDLE and display the player-poster.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If the player has been previously awakened by user-interaction or by AUTOPLAY set to TRUE, the new active item will be played back immediately.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT88 SECTION &quot;player.setActiveItem(item:mixed):void&quot; [8759-9376] --&gt;
&lt;h3 class=&quot;sectionedit89&quot;&gt;&lt;a name=&quot;playersetcuepoint_cuepointobject_void&quot; id=&quot;playersetcuepoint_cuepointobject_void&quot;&gt;player.setCuePoint(cuePoint:Object):void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Adds a &lt;a href=&quot;http://www.projekktor.com/docs/cuepoints&quot; class=&quot;wikilink1&quot; title=&quot;cuepoints&quot;&gt;cue point&lt;/a&gt; to an active player instance.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT89 SECTION &quot;player.setCuePoint(cuePoint:Object):void&quot; [9377-9492] --&gt;
&lt;h3 class=&quot;sectionedit90&quot;&gt;&lt;a name=&quot;playerremovecuepoint_groupstring_idxinteger_this&quot; id=&quot;playerremovecuepoint_groupstring_idxinteger_this&quot;&gt;player.removeCuePoint(group:String, Idx:Integer):this&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Instantly removes a &lt;a href=&quot;http://www.projekktor.com/docs/cuepoints&quot; class=&quot;wikilink1&quot; title=&quot;cuepoints&quot;&gt;cuepoint&lt;/a&gt; from the player instance. You must specify a “group” and the “idx” of the affected video item. In order to identify the addressed &lt;a href=&quot;http://www.projekktor.com/docs/cuepoints&quot; class=&quot;wikilink1&quot; title=&quot;cuepoints&quot;&gt;cuepoints&lt;/a&gt; by “group” the cuepoint´s “group” property must be priorly set accordingly.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT90 SECTION &quot;player.removeCuePoint(group:String, Idx:Integer):this&quot; [9493-9834] --&gt;
&lt;h3 class=&quot;sectionedit91&quot;&gt;&lt;a name=&quot;playersetplaybackquality_qualitystring_this&quot; id=&quot;playersetplaybackquality_qualitystring_this&quot;&gt;player.setPlaybackQuality(quality:String):this&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Overwrites the quality setting applied through the config option “playbackQuality”. Will force the player to instantly switch to the requested quality type. Possibe &lt;em&gt;quality&lt;/em&gt; values are: &amp;#039;small&amp;#039;, &amp;#039;medium&amp;#039;, &amp;#039;large&amp;#039;, &amp;#039;hd720&amp;#039;, &amp;#039;hd1080&amp;#039;.
&lt;/p&gt;

&lt;p&gt;
If parameter is invalid or the requested quality isn´t available nothing will happen. Otherwise the player will trigger the “qualityChange”-event.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT91 SECTION &quot;player.setPlaybackQuality(quality:String):this&quot; [9835-10278] --&gt;
&lt;h3 class=&quot;sectionedit92&quot;&gt;&lt;a name=&quot;playerselfdestruct_void&quot; id=&quot;playerselfdestruct_void&quot;&gt;player.selfDestruct():void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Instantly destroys the referred instance and reconstructs its host DOM´s original state; the one before the player has been applied.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT92 SECTION &quot;player.selfDestruct():void&quot; [10279-10455] --&gt;
&lt;h3 class=&quot;sectionedit93&quot;&gt;&lt;a name=&quot;playerreset_void&quot; id=&quot;playerreset_void&quot;&gt;player.reset():void&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Resets the instance while keeping current configuration and schedule intact. Sets the active item pointer back to zero.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT93 SECTION &quot;player.reset():void&quot; [10456-10611] --&gt;
&lt;h3 class=&quot;sectionedit94&quot;&gt;&lt;a name=&quot;playeropenurl_objecturldest_targetstringself_pauseboolfalse&quot; id=&quot;playeropenurl_objecturldest_targetstringself_pauseboolfalse&quot;&gt;player.openUrl(Object:{url:&amp;lt;dest&amp;gt;, target:string:&amp;#039;_self&amp;#039;, pause:bool:false})&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Opens an &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; depending on “target” either in the same or in a new window, optionally pauses the player.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT94 SECTION &quot;player.openUrl(Object:{url:&lt;dest&gt;, target:string:'_self', pause:bool:false})&quot; [10612-10805] --&gt;
&lt;h2 class=&quot;sectionedit95&quot;&gt;&lt;a name=&quot;getters&quot; id=&quot;getters&quot;&gt;Getters&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT95 SECTION &quot;Getters&quot; [10806-10826] --&gt;
&lt;h3 class=&quot;sectionedit96&quot;&gt;&lt;a name=&quot;playergetitemcount_number&quot; id=&quot;playergetitemcount_number&quot;&gt;player.getItemCount():Number&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the amount of media items within the playlist.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT96 SECTION &quot;player.getItemCount():Number&quot; [10827-10923] --&gt;
&lt;h3 class=&quot;sectionedit97&quot;&gt;&lt;a name=&quot;playergetvolume_float&quot; id=&quot;playergetvolume_float&quot;&gt;player.getVolume():Float&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the sound volume of the player instance where 0 is muted and 1 is full throttle. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT97 SECTION &quot;player.getVolume():Float&quot; [10924-11051] --&gt;
&lt;h3 class=&quot;sectionedit98&quot;&gt;&lt;a name=&quot;playergetitemidx_number&quot; id=&quot;playergetitemidx_number&quot;&gt;player.getItemIdx():Number&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the internal playlist index of the currently played item. Note that 0 is for the first item in line.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT98 SECTION &quot;player.getItemIdx():Number&quot; [11052-11200] --&gt;
&lt;h3 class=&quot;sectionedit99&quot;&gt;&lt;a name=&quot;playergetitemid_string&quot; id=&quot;playergetitemid_string&quot;&gt;player.getItemId():String&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the unqiue ID of the currently played item if any.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT99 SECTION &quot;player.getItemId():String&quot; [11201-11298] --&gt;
&lt;h3 class=&quot;sectionedit100&quot;&gt;&lt;a name=&quot;playergetisautoslide_boolean&quot; id=&quot;playergetisautoslide_boolean&quot;&gt;player.getIsAutoslide():Boolean *&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
experimental
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT100 SECTION &quot;player.getIsAutoslide():Boolean *&quot; [11299-11358] --&gt;
&lt;h3 class=&quot;sectionedit101&quot;&gt;&lt;a name=&quot;playergetitem_idxmixed_object&quot; id=&quot;playergetitem_idxmixed_object&quot;&gt;player.getItem(idx:mixed):Object&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns one or more items identified by &lt;em&gt;idx&lt;/em&gt;. &lt;em&gt;idx&lt;/em&gt; can either be a numeric value describing the internal playlist position of the requested item or one of the following shortcuts: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;&lt;strong&gt;next&lt;/strong&gt;&amp;#039; to fetch the next item - relative to the currently playing one&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;&lt;strong&gt;current&lt;/strong&gt;&amp;#039; (default) to fetch the data if of the item which is played back right now&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;&lt;strong&gt;previous&lt;/strong&gt;&amp;#039; to fetch the previous item - relative to the currently playing one&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;*&amp;#039; all items (same as getPlaylist())&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Not setting “idx” will return the currently played item so you don´t have to use &amp;#039;getItemIdx()&amp;#039; beforehand.
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;This method returns copies not references. To alter items you have to use setItem().
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT101 SECTION &quot;player.getItem(idx:mixed):Object&quot; [11359-12109] --&gt;
&lt;h3 class=&quot;sectionedit102&quot;&gt;&lt;a name=&quot;playergetloadprogress_idxmixed_float&quot; id=&quot;playergetloadprogress_idxmixed_float&quot;&gt;player.getLoadProgress(idx:mixed):Float&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns how many percent of the currently played item has been loaded/buffered so far. 
Will instantly be 100 on media types available for random-seeking.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT102 SECTION &quot;player.getLoadProgress(idx:mixed):Float&quot; [12110-12317] --&gt;
&lt;h3 class=&quot;sectionedit103&quot;&gt;&lt;a name=&quot;playergetloadplaybackprogress_idxmixed_float&quot; id=&quot;playergetloadplaybackprogress_idxmixed_float&quot;&gt;player.getLoadPlaybackProgress(idx:mixed):Float&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the current playhead position in percent relative to the currently played item´s duration.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT103 SECTION &quot;player.getLoadPlaybackProgress(idx:mixed):Float&quot; [12318-12478] --&gt;
&lt;h3 class=&quot;sectionedit104&quot;&gt;&lt;a name=&quot;playergetcuepoints_idxinteger_array&quot; id=&quot;playergetcuepoints_idxinteger_array&quot;&gt;player.getCuePoints(idx:Integer):Array&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
soon
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT104 SECTION &quot;player.getCuePoints(idx:Integer):Array&quot; [12479-12534] --&gt;
&lt;h3 class=&quot;sectionedit105&quot;&gt;&lt;a name=&quot;playergetposition_number&quot; id=&quot;playergetposition_number&quot;&gt;player.getPosition():Number&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the current playhead position in milliseconds.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT105 SECTION &quot;player.getPosition():Number&quot; [12535-12630] --&gt;
&lt;h3 class=&quot;sectionedit106&quot;&gt;&lt;a name=&quot;playergetduration_number&quot; id=&quot;playergetduration_number&quot;&gt;player.getDuration():Number&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the duration of the currently played item in milliseconds.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT106 SECTION &quot;player.getDuration():Number&quot; [12631-12738] --&gt;
&lt;h3 class=&quot;sectionedit107&quot;&gt;&lt;a name=&quot;playergettimeleft_number&quot; id=&quot;playergettimeleft_number&quot;&gt;player.getTimeLeft():Number&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Retruns the difference between currently played item´s duration and the playhead position in milliseconds. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT107 SECTION &quot;player.getTimeLeft():Number&quot; [12739-12888] --&gt;
&lt;h3 class=&quot;sectionedit108&quot;&gt;&lt;a name=&quot;playergetkbpersec_float&quot; id=&quot;playergetkbpersec_float&quot;&gt;player.getKbPerSec():Float&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Experimental
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT108 SECTION &quot;player.getKbPerSec():Float&quot; [12889-12940] --&gt;
&lt;h3 class=&quot;sectionedit109&quot;&gt;&lt;a name=&quot;playergettrackid_string&quot; id=&quot;playergettrackid_string&quot;&gt;player.getTrackId():String&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Experimental
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT109 SECTION &quot;player.getTrackId():String&quot; [12941-12992] --&gt;
&lt;h3 class=&quot;sectionedit110&quot;&gt;&lt;a name=&quot;playergetpreloaderpct_float&quot; id=&quot;playergetpreloaderpct_float&quot;&gt;player.getPreloaderPct():Float&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;del&gt;Experimental&lt;/del&gt; Moved to “Splash” plugin
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT110 SECTION &quot;player.getPreloaderPct():Float&quot; [12993-13089] --&gt;
&lt;h3 class=&quot;sectionedit111&quot;&gt;&lt;a name=&quot;playergetinfullscreen_boolean&quot; id=&quot;playergetinfullscreen_boolean&quot;&gt;player.getInFullscreen():Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns TRUE if the player is in fullscreen / full viewport mode, otherwise FALSE.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT111 SECTION &quot;player.getInFullscreen():Boolean&quot; [13090-13222] --&gt;
&lt;h3 class=&quot;sectionedit112&quot;&gt;&lt;a name=&quot;playergetpublicname_string&quot; id=&quot;playergetpublicname_string&quot;&gt;player.getPublicName():String&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the player´s current unique &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; ID.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT112 SECTION &quot;player.getPublicName():String&quot; [13223-13316] --&gt;
&lt;h3 class=&quot;sectionedit113&quot;&gt;&lt;a name=&quot;playergetmediatype_string&quot; id=&quot;playergetmediatype_string&quot;&gt;player.getMediaType():String&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns of what type the currently played item is. (LIST GOES HERE)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT113 SECTION &quot;player.getMediaType():String&quot; [13317-13426] --&gt;
&lt;h3 class=&quot;sectionedit114&quot;&gt;&lt;a name=&quot;playergetusesflash_boolean&quot; id=&quot;playergetusesflash_boolean&quot;&gt;player.getUsesFlash():Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns true if the current item uses the Flash fallback component for playback.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT114 SECTION &quot;player.getUsesFlash():Boolean&quot; [13427-13549] --&gt;
&lt;h3 class=&quot;sectionedit115&quot;&gt;&lt;a name=&quot;playergetcanplaynatively_mediatypesarray_boolean&quot; id=&quot;playergetcanplaynatively_mediatypesarray_boolean&quot;&gt;player.getCanPlayNatively(mediaTypes:Array):Boolean&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Used without parameter this method returns TRUE if the client browser is able to play back at least one media type natively. If &lt;em&gt;mediaTypes&lt;/em&gt; parameter is set the test is performed for every media type provided and will return TRUE if one or more types specified can be played back natively. 
&lt;/p&gt;

&lt;p&gt;
E.g.: [&amp;#039;video/ogg&amp;#039;, &amp;#039;video/webm&amp;#039;]) will return TRUE in Chrome and TRUE in FF ⇐9 but [&amp;#039;video/webm&amp;#039;]) will return TRUE in Chrome only. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT115 SECTION &quot;player.getCanPlayNatively(mediaTypes:Array):Boolean&quot; [13550-14044] --&gt;
&lt;h3 class=&quot;sectionedit116&quot;&gt;&lt;a name=&quot;playergetiframewindow_jqueryobject&quot; id=&quot;playergetiframewindow_jqueryobject&quot;&gt;player.getIframeWindow():JQueryObject&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If the player is in “iframe mode” this function returns the iframe´s parent window for further manipulations.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT116 SECTION &quot;player.getIframeWindow():JQueryObject&quot; [14045-14205] --&gt;
&lt;h3 class=&quot;sectionedit117&quot;&gt;&lt;a name=&quot;playergetiframe_jqueryobject&quot; id=&quot;playergetiframe_jqueryobject&quot;&gt;player.getIframe():JQueryObject&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If the player is in “iframe mode” this function returns the iframe the player lives in.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT117 SECTION &quot;player.getIframe():JQueryObject&quot; [14206-14338] --&gt;
&lt;h3 class=&quot;sectionedit118&quot;&gt;&lt;a name=&quot;playergetplaylist_object&quot; id=&quot;playergetplaylist_object&quot;&gt;player.getPlaylist():Object&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Returns the whole currently scheduled playlist. Same as getItems(&amp;#039;*&amp;#039;).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT118 SECTION &quot;player.getPlaylist():Object&quot; [14339-14455] --&gt;
&lt;h3 class=&quot;sectionedit119&quot;&gt;&lt;a name=&quot;playergetstate_teststring_object&quot; id=&quot;playergetstate_teststring_object&quot;&gt;player.getState(test:string):Object&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If called without argument this method returns the current state of the player. You can find a &lt;a href=&quot;http://www.projekktor.com/docs/events#state_string&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/events#state_string&quot;&gt;list of possible states here&lt;/a&gt;. If “test” is not NULL and a valid state string the method will return TRUE or FALSE according to current playerstate (e.g.: getState(&amp;#039;PLAYING&amp;#039;) will return TRUE if the player is playing).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT119 SECTION &quot;player.getState(test:string):Object&quot; [14456-] --&gt;</description>
            <author>operator</author>
            <pubDate>Thu, 10 May 2012 14:48:18 +0200</pubDate>
        </item>
        <item>
            <title>Cue Points - [The Cuepoint Object] </title>
            <link>http://www.projekktor.com/docs/cuepoints?rev=1336642340&amp;do=diff</link>
            <description>
&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;This docu is work in progress. Sorry about that.
&lt;/div&gt;
&lt;/p&gt;

&lt;h3 class=&quot;sectionedit120&quot;&gt;&lt;a name=&quot;cue_points&quot; id=&quot;cue_points&quot;&gt;Cue Points&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT120 SECTION &quot;Cue Points&quot; [73-95] --&gt;
&lt;h3 class=&quot;sectionedit121&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor features setting of “cuepoints” which can be set through &lt;a href=&quot;http://www.projekktor.com/docs/playlists&quot; class=&quot;wikilink1&quot; title=&quot;playlists&quot;&gt;playlists&lt;/a&gt; or by calling &lt;a href=&quot;http://www.projekktor.com/docs/api#playersetcuepoint_cuepointobject_void&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;API functions&lt;/a&gt;. 
&lt;/p&gt;

&lt;p&gt;
Cuepoints trigger custom callback functions depending on the current time index (the playhead position) of the player. Furthermore they can be &lt;a href=&quot;http://www.projekktor.com/docs/api#playergetcuepoints_idxinteger_array&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;grabed via the player´s JS API&lt;/a&gt; e.g. in order to create visual chapter indexes.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT121 SECTION &quot;General&quot; [96-553] --&gt;
&lt;h3 class=&quot;sectionedit122&quot;&gt;&lt;a name=&quot;the_cuepoint_object&quot; id=&quot;the_cuepoint_object&quot;&gt;The Cuepoint Object&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
id: &amp;#039;words1&amp;#039;,
item: &amp;#039;*&amp;#039;,
group: &amp;#039;cue3&amp;#039;,
on: &amp;#039;00:01&amp;#039;,
off: &amp;#039;00:09&amp;#039;,
value: &amp;#039;hallo baby&amp;#039;,
callback: function() {alert(&amp;quot;trigger me, babe&amp;quot;}
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT122 SECTION &quot;The Cuepoint Object&quot; [554-740] --&gt;
&lt;h3 class=&quot;sectionedit123&quot;&gt;&lt;a name=&quot;setting_cuepoints_via_the_api&quot; id=&quot;setting_cuepoints_via_the_api&quot;&gt;Setting Cuepoints via the API&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT123 SECTION &quot;Setting Cuepoints via the API&quot; [741-781] --&gt;
&lt;h3 class=&quot;sectionedit124&quot;&gt;&lt;a name=&quot;setting_cuepoints_via_playlists&quot; id=&quot;setting_cuepoints_via_playlists&quot;&gt;Setting Cuepoints via Playlists&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT124 SECTION &quot;Setting Cuepoints via Playlists&quot; [782-] --&gt;</description>
            <author>operator</author>
            <pubDate>Thu, 10 May 2012 11:32:20 +0200</pubDate>
        </item>
        <item>
            <title>Plugins</title>
            <link>http://www.projekktor.com/docs/plugins?rev=1336030064&amp;do=diff</link>
            <description>
&lt;h3 class=&quot;sectionedit125&quot;&gt;&lt;a name=&quot;plugins&quot; id=&quot;plugins&quot;&gt;Plugins&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT125 SECTION &quot;Plugins&quot; [2-21] --&gt;
&lt;h3 class=&quot;sectionedit126&quot;&gt;&lt;a name=&quot;c&quot; id=&quot;c&quot;&gt;C&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.projekktor.com/docs/plugins_controlbar&quot; class=&quot;wikilink1&quot; title=&quot;plugins_controlbar&quot;&gt;Controlbar&lt;/a&gt; &lt;img src=&quot;http://www.projekktor.com/docs/lib/images/smileys/icon_exclaim.gif&quot; class=&quot;middle&quot; alt=&quot;:!:&quot; /&gt; - Handles a couple of buttons and sliders to control the player. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT126 SECTION &quot;C&quot; [22-142] --&gt;
&lt;h3 class=&quot;sectionedit127&quot;&gt;&lt;a name=&quot;d&quot; id=&quot;d&quot;&gt;D&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.projekktor.com/docs/plugins_display&quot; class=&quot;wikilink1&quot; title=&quot;plugins_display&quot;&gt;Display&lt;/a&gt; &lt;img src=&quot;http://www.projekktor.com/docs/lib/images/smileys/icon_exclaim.gif&quot; class=&quot;middle&quot; alt=&quot;:!:&quot; /&gt; - This plugin features the media display, a buffering indicator and a logo-overlay. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT127 SECTION &quot;D&quot; [143-278] --&gt;
&lt;h3 class=&quot;sectionedit128&quot;&gt;&lt;a name=&quot;r&quot; id=&quot;r&quot;&gt;R&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.projekktor.com/docs/plugins_related&quot; class=&quot;wikilink1&quot; title=&quot;plugins_related&quot;&gt;Related&lt;/a&gt; - Adds a post-roll panel which shows thumbnails of related or recommended videos. Also features a “replay” button and optional sharing features.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT128 SECTION &quot;R&quot; [279-469] --&gt;
&lt;h3 class=&quot;sectionedit129&quot;&gt;&lt;a name=&quot;t&quot; id=&quot;t&quot;&gt;T&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.projekktor.com/docs/plugins_tracking&quot; class=&quot;wikilink1&quot; title=&quot;plugins_tracking&quot;&gt;Tracking&lt;/a&gt; - Allows tracking of all player events and states plus some additional client information by any pixel-image based tracker.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT129 SECTION &quot;T&quot; [470-643] --&gt;
&lt;h3 class=&quot;sectionedit130&quot;&gt;&lt;a name=&quot;v&quot; id=&quot;v&quot;&gt;V&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.projekktor.com/docs/plugins_vast&quot; class=&quot;wikilink1&quot; title=&quot;plugins_vast&quot;&gt;VAST / IMA&lt;/a&gt; - Reads VAST 1.0 and VAST 2.0 feeds. Supports pre-roll-, overlay- and companion- ads plus relevant tracking. Approved by Smartclip and Google.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;Plugins marked with &lt;img src=&quot;http://www.projekktor.com/docs/lib/images/smileys/icon_exclaim.gif&quot; class=&quot;middle&quot; alt=&quot;:!:&quot; /&gt; are built into the official Projekktor releases.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT130 SECTION &quot;V&quot; [644-] --&gt;</description>
            <author>operator</author>
            <pubDate>Thu, 03 May 2012 09:27:44 +0200</pubDate>
        </item>
        <item>
            <title>Quality Toggle - created</title>
            <link>http://www.projekktor.com/docs/qualitytoggle?rev=1335545707&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit131&quot;&gt;&lt;a name=&quot;quality_toggle&quot; id=&quot;quality_toggle&quot;&gt;Quality Toggle&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT131 SECTION &quot;Quality Toggle&quot; [1-30] --&gt;
&lt;h3 class=&quot;sectionedit132&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT132 SECTION &quot;General&quot; [31-50] --&gt;
&lt;h3 class=&quot;sectionedit133&quot;&gt;&lt;a name=&quot;configuration&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
/*
small: Player height is 240px, and player dimensions are at least 320px by 240px for 4:3 aspect ratio.
medium: Player height is 360px, and player dimensions are 640px by 360px (for 16:9 aspect ratio) or 480px by 360px (for 4:3 aspect ratio).
large: Player height is 480px, and player dimensions are 853px by 480px (for 16:9 aspect ratio) or 640px by 480px (for 4:3 aspect ratio).
hd720: Player height is 720px, and player dimensions are 1280px by 720px (for 16:9 aspect ratio) or 960px by 720px (for 4:3 aspect ratio).
hd1080: Player height is 1080px, and player dimensions are 1920px by 1080px (for 16:9 aspect ratio) or 1440px by 1080px (for 4:3 aspect ratio).
highres: Player height is greater than 1080px, which means that the player&amp;#039;s aspect ratio is greater than 1920px by 1080px.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT133 SECTION &quot;Configuration&quot; [51-869] --&gt;
&lt;h3 class=&quot;sectionedit134&quot;&gt;&lt;a name=&quot;setup&quot; id=&quot;setup&quot;&gt;Setup&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
/*
small: Player height is 240px, and player dimensions are at least 320px by 240px for 4:3 aspect ratio.
medium: Player height is 360px, and player dimensions are 640px by 360px (for 16:9 aspect ratio) or 480px by 360px (for 4:3 aspect ratio).
large: Player height is 480px, and player dimensions are 853px by 480px (for 16:9 aspect ratio) or 640px by 480px (for 4:3 aspect ratio).
hd720: Player height is 720px, and player dimensions are 1280px by 720px (for 16:9 aspect ratio) or 960px by 720px (for 4:3 aspect ratio).
hd1080: Player height is 1080px, and player dimensions are 1920px by 1080px (for 16:9 aspect ratio) or 1440px by 1080px (for 4:3 aspect ratio).
highres: Player height is greater than 1080px, which means that the player&amp;#039;s aspect ratio is greater than 1920px by 1080px.
*/
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT134 SECTION &quot;Setup&quot; [870-] --&gt;</description>
            <author>operator</author>
            <pubDate>Fri, 27 Apr 2012 18:55:07 +0200</pubDate>
        </item>
        <item>
            <title>Display Plugin - [Config Options] </title>
            <link>http://www.projekktor.com/docs/plugins_display?rev=1335359983&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit135&quot;&gt;&lt;a name=&quot;display_plugin&quot; id=&quot;display_plugin&quot;&gt;Display Plugin&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT135 SECTION &quot;Display Plugin&quot; [1-31] --&gt;
&lt;h2 class=&quot;sectionedit136&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This plugin features the media display, a buffering indicator and a logo-overlay.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT136 SECTION &quot;General&quot; [32-135] --&gt;
&lt;h2 class=&quot;sectionedit137&quot;&gt;&lt;a name=&quot;install&quot; id=&quot;install&quot;&gt;Install&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT137 SECTION &quot;Install&quot; [136-156] --&gt;
&lt;h3 class=&quot;sectionedit138&quot;&gt;&lt;a name=&quot;scripts&quot; id=&quot;scripts&quot;&gt;Scripts&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This plugin is bundled to the official Projekktor distribution. No need to take care of any extras here.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT138 SECTION &quot;Scripts&quot; [157-281] --&gt;
&lt;h3 class=&quot;sectionedit139&quot;&gt;&lt;a name=&quot;html&quot; id=&quot;html&quot;&gt;HTML&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Nothing special here. If no container with the class ”&amp;lt;prefix&amp;gt;display” is available within the player´s dest. container the plugin will inject one.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT139 SECTION &quot;HTML&quot; [282-448] --&gt;
&lt;h3 class=&quot;sectionedit140&quot;&gt;&lt;a name=&quot;css&quot; id=&quot;css&quot;&gt;CSS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The display container can be styled as you like. To make the display fill the whole player container the theme.css should feature something like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;.ppdisplay {
    position: relative !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;    
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT140 SECTION &quot;CSS&quot; [449-777] --&gt;
&lt;h2 class=&quot;sectionedit141&quot;&gt;&lt;a name=&quot;configuration&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
….
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT141 SECTION &quot;Configuration&quot; [778-811] --&gt;
&lt;h3 class=&quot;sectionedit142&quot;&gt;&lt;a name=&quot;config_options&quot; id=&quot;config_options&quot;&gt;Config Options&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;displayclick_objectcallbacksetplaypause_valuenull&quot; id=&quot;displayclick_objectcallbacksetplaypause_valuenull&quot;&gt;displayClick (Object:{callback: &amp;#039;setPlayPause&amp;#039;, value: null}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggeres “callback” in case the display area is being clicked while the player is in IDLE state. “callback” can either be a Projekktor &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; methor or a custom function.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;displayplayingclick_objectcallbacksetplaypause_valuenull&quot; id=&quot;displayplayingclick_objectcallbacksetplaypause_valuenull&quot;&gt;displayPlayingClick (Object:{callback: &amp;#039;setPlayPause&amp;#039;, value: null}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggeres “callback” in case the display area is being clicked during media playback. “callback” can either be a Projekktor &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; methor or a custom function.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;displaydblclick_objectcallbacknull_valuenull&quot; id=&quot;displaydblclick_objectcallbacknull_valuenull&quot;&gt;displayDblClick (Object:{callback: null, value: null}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggeres “callback” in case the display area is beeing doubleClicked. “callback” can either be a Projekktor &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; methor or a custom function.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;staticcontrols_booleanfalse&quot; id=&quot;staticcontrols_booleanfalse&quot;&gt;staticControls(Boolean: false}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If “staticControls” is “true”, the media display is automatically scaled to full player height minus the height of the control bar generated by the &lt;a href=&quot;http://www.projekktor.com/docs/plugins_controlbar&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/plugins_controlbar&quot;&gt;controlbar plugin|&lt;/a&gt; to avoid overlapping.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;buffericondelay_integer10000&quot; id=&quot;buffericondelay_integer10000&quot;&gt;bufferIconDelay(Integer: 10000}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Setting this to a value &amp;gt; 0 (milliseconds) will delay the appearance of the “buffering” indicator after the player sent the respective event. This is used to compensate possible flickering and assure a cleaner userexperience.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;spriteurl_string&quot; id=&quot;spriteurl_string&quot;&gt;spriteUrl(String: &amp;#039;&amp;#039;}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Usually the “buffericon” is an animated &lt;acronym title=&quot;Graphics Interchange Format&quot;&gt;GIF&lt;/acronym&gt; made visible via a background-image for the corresponding &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; container. Unfortunately animated GIFs may have artefacts which don´t look good in case you want a transparent buffering icon. A transparent &lt;acronym title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/acronym&gt; is much cleaner but unfortunately not animatable cross-browser (APNG).
&lt;/p&gt;

&lt;p&gt;
You can “emulate” APNG by using a sprite which is animated via Projekktor.
&lt;/p&gt;

&lt;p&gt;
“spriteUrl” must point to a &lt;acronym title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/acronym&gt; featuring an animation-sequence by horizontally stacked icon-animation-frames / stills. All frames must be of the same size. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;spritewidth_integer50&quot; id=&quot;spritewidth_integer50&quot;&gt;spriteWidth(Integer: 50}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The width of one icon animation frame.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;spriteheight_integer50&quot; id=&quot;spriteheight_integer50&quot;&gt;spriteHeight(Integer: 50}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The height of one icon animation frame
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;spritetiles_integer25&quot; id=&quot;spritetiles_integer25&quot;&gt;spriteTiles(Integer: 25}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Total amount of single animation frames featured in the &lt;acronym title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/acronym&gt; sprite set at “spriteUrl”.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;spriteoffset_integer1&quot; id=&quot;spriteoffset_integer1&quot;&gt;spriteOffset(Integer: 1}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If the single frames are separated by an empty space or any other kind of spacer you must provide the spacer´s height here.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;spritecountup_booleanfalse&quot; id=&quot;spritecountup_booleanfalse&quot;&gt;spriteCountUp(Boolean: false}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Indicates if the &lt;acronym title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/acronym&gt; sprite is animated fom top to button (spriteCountUp = true) or from button to top (spriteCountUp = false).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;logoimage_string&quot; id=&quot;logoimage_string&quot;&gt;logoImage(String: &amp;#039;&amp;#039;}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Full qualified &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to an optional logo-image. Preferably this should be a transpatent &lt;acronym title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/acronym&gt; but, well, it´s up to you.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;logodelay_integer1&quot; id=&quot;logodelay_integer1&quot;&gt;logoDelay(Integer: 1}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If “logoDelay” is &amp;gt; 0 the logo will smoothly fade in at the givin playhead position. Also the logo will fade out “logoDelay” seconds prior end of video.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;logoposition_stringtl&quot; id=&quot;logoposition_stringtl&quot;&gt;logoPosition(String: &amp;#039;tl&amp;#039;}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The position of the logo can be set here. Contrary &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; direcives will be overwritten. Possible values are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; “tl” for “top left”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; “tr” for “top right”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; “br” for “bottom right”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; “bl” for “bottom left”&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;logoclick_objectcallbackvaluenull&quot; id=&quot;logoclick_objectcallbackvaluenull&quot;&gt;logoClick(Object: {callback: &amp;#039;&amp;#039;, value: null}}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggeres “callback” in case the logo image is beeing clicked. “callback” can either be a Projekktor &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; methor or a custom function.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT142 SECTION &quot;Config Options&quot; [812-] --&gt;</description>
            <author>operator</author>
            <pubDate>Wed, 25 Apr 2012 15:19:43 +0200</pubDate>
        </item>
        <item>
            <title>Controlbar Plugin - [Config Options] </title>
            <link>http://www.projekktor.com/docs/plugins_controlbar?rev=1335257817&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit143&quot;&gt;&lt;a name=&quot;controlbar_plugin&quot; id=&quot;controlbar_plugin&quot;&gt;Controlbar Plugin&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT143 SECTION &quot;Controlbar Plugin&quot; [1-34] --&gt;
&lt;h2 class=&quot;sectionedit144&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This plugin handles a couple of buttons and sliders to control the player.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT144 SECTION &quot;General&quot; [35-131] --&gt;
&lt;h2 class=&quot;sectionedit145&quot;&gt;&lt;a name=&quot;install&quot; id=&quot;install&quot;&gt;Install&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT145 SECTION &quot;Install&quot; [132-152] --&gt;
&lt;h3 class=&quot;sectionedit146&quot;&gt;&lt;a name=&quot;scripts&quot; id=&quot;scripts&quot;&gt;Scripts&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This plugin is bundled to the official Projekktor distribution. No need to take care of any extras here. If you use a custom build make sure “projekktor.controlbar.js” and a “theme.css” is included to your page.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT146 SECTION &quot;Scripts&quot; [153-384] --&gt;
&lt;h3 class=&quot;sectionedit147&quot;&gt;&lt;a name=&quot;html_css&quot; id=&quot;html_css&quot;&gt;HTML / CSS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Please check our &lt;a href=&quot;http://www.projekktor.com/docs/theming&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/theming&quot;&gt;theming the player guide&lt;/a&gt; to learn more about the general principles here.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT147 SECTION &quot;HTML / CSS&quot; [385-542] --&gt;
&lt;h3 class=&quot;sectionedit148&quot;&gt;&lt;a name=&quot;setup&quot; id=&quot;setup&quot;&gt;Setup&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
If you do NOT use the official Projekktor distro make sure you activate the plugin by adding it to the event dispatcher. To do so set “&lt;strong&gt;addplugins&lt;/strong&gt;” accordingly, e.g.:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;var player = projekktor(&amp;#039;#player_a&amp;#039;, {
   controls: true,
   autoplay: false,
   addplugins: [&amp;#039;controlbar&amp;#039;],
   playlist: [   
      {
         0: {src:&amp;#039;http://www.projekktor.com/video/mc.mp4&amp;#039;, type:&amp;quot;video/mp4&amp;quot;}
      }
   ]
});&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT148 SECTION &quot;Setup&quot; [543-978] --&gt;
&lt;h3 class=&quot;sectionedit149&quot;&gt;&lt;a name=&quot;config_options&quot; id=&quot;config_options&quot;&gt;Config Options&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
All config options described below are optional. 
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteclassic&quot;&gt;Options marked with an “*” have no effect in case you use the &lt;a href=&quot;http://www.projekktor.com/docs/theming#projekktor-izing_anything&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/theming#projekktor-izing_anything&quot;&gt;Projekktorize my HTML principle&lt;/a&gt; (patent pending).
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;disablefade_booleanfalse&quot; id=&quot;disablefade_booleanfalse&quot;&gt;disableFade(Boolean: false} *&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If set “true” the controls-container won´t fade away after “fadeDelay” seconds but stay persistent during playback.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;fadedelay_integer10000&quot; id=&quot;fadedelay_integer10000&quot;&gt;fadeDelay(Integer: 10000}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If “disableFade” is “false” the controls-container will fade away after “fadeDelay” milliseconds without any user-interaction (e.g. mousemove, keypress etc.pp.) and in case the container does not have the focus (e.g. mouseover).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;showonstart_booleanfalse&quot; id=&quot;showonstart_booleanfalse&quot;&gt;showOnStart(Boolean: false}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Setting this to “true” will make the controls-container visible right after the player begins playback. Will fade away if “disableFade” is not “false” after “fadeDelay” milliseconds.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;showonidle_booleanfalse&quot; id=&quot;showonidle_booleanfalse&quot;&gt;showOnIdle(Boolean: false}&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Makes the control-container visible right after the player initialized but no playback has yet started. This usually is the case while the “poster” is shown.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;controlstemplate_stringul_class_left_li_div_play_div_div__and_much_more&quot; id=&quot;controlstemplate_stringul_class_left_li_div_play_div_div__and_much_more&quot;&gt;controlsTemplate (String: &amp;#039;&amp;lt;ul class=&amp;quot;left&amp;quot;&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{play}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div % ... and much more ...&amp;#039;) *&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
In case you do NOT use the &lt;a href=&quot;http://www.projekktor.com/docs/theming#projekktor-izing_anything&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/theming#projekktor-izing_anything&quot;&gt;Projekktorize my HTML principle&lt;/a&gt; (patent pending) the plugin will apply the markup set here to the player automatically.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT149 SECTION &quot;Config Options&quot; [979-] --&gt;</description>
            <author>operator</author>
            <pubDate>Tue, 24 Apr 2012 10:56:57 +0200</pubDate>
        </item>
        <item>
            <title>Projekktor Theming - [Customizing the Controlbar´s Layout] </title>
            <link>http://www.projekktor.com/docs/theming?rev=1335253138&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit150&quot;&gt;&lt;a name=&quot;projekktor_theming&quot; id=&quot;projekktor_theming&quot;&gt;Projekktor Theming&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT150 SECTION &quot;Projekktor Theming&quot; [1-33] --&gt;
&lt;h2 class=&quot;sectionedit151&quot;&gt;&lt;a name=&quot;preamble&quot; id=&quot;preamble&quot;&gt;Preamble&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
In fact, when ever we talk about “theming” we talk about editing the player´s &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; and optional applying  selected configuration options to one or more plugins - e.g. the “controlbar”-plugin.
&lt;/p&gt;

&lt;p&gt;
For your understanding: A bare Projekktor does not require any “theming”. Its not more or less than a &amp;lt;div&amp;gt; container where all the media stuff is injected into. Nevertheless plugins (which are in terms of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_View_Controller&quot; class=&quot;urlextern&quot; title=&quot;http://en.wikipedia.org/wiki/Model_View_Controller&quot;&gt;MCV-pattern&lt;/a&gt; “views”) usually add &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt;-containers to the player´s container or somewhere else on the page.
&lt;/p&gt;

&lt;p&gt;
The official packed Projekktor distribution features two built-in plugins: &lt;a href=&quot;http://www.projekktor.com/docs/plugins_controlbar&quot; class=&quot;wikilink1&quot; title=&quot;plugins_controlbar&quot;&gt;Controlbar&lt;/a&gt; and &lt;a href=&quot;http://www.projekktor.com/docs/plugins_display&quot; class=&quot;wikilink1&quot; title=&quot;plugins_display&quot;&gt;Display&lt;/a&gt;. So theming this distributions usually end up a customized &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; file replacing the default “theme/style.css” and sometimes providing custom config parameters for one or both of the mentioned plugins.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT151 SECTION &quot;Preamble&quot; [34-962] --&gt;
&lt;h2 class=&quot;sectionedit152&quot;&gt;&lt;a name=&quot;customizing_the_controlbar_s_layout&quot; id=&quot;customizing_the_controlbar_s_layout&quot;&gt;Customizing the Controlbar´s Layout&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Ok, let´s have a look on the &lt;em class=&quot;u&quot;&gt;default&lt;/em&gt; controlbar template. You can alter it by setting the &lt;em&gt;plugin_controlbar.controlsTemplate&lt;/em&gt; config parameters:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;ul class=&amp;quot;left&amp;quot;&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{play}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{pause}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{title}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul class=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{fsexit}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{fsenter}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{vmax}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{vslider}&amp;gt;&amp;lt;div %{vmarker}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{vknob}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{mute}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{timeleft}&amp;gt;%{hr_elp}:%{min_elp}:%{sec_elp} | %{hr_dur}:%{min_dur}:%{sec_dur}&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{next}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{prev}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul class=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;li&amp;gt;&amp;lt;div %{scrubber}&amp;gt;&amp;lt;div %{loaded}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{playhead}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{scrubberdrag}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;/pre&gt;

&lt;p&gt;
It looks more complex than it actually is. This is because all carriage returns, tabs and so on has been stripped out. Let´s get them back in:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;ul class=&amp;quot;left&amp;quot;&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{play}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{pause}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{title}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;ul class=&amp;quot;right&amp;quot;&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{fsexit}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{fsenter}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{vmax}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{vslider}&amp;gt;&amp;lt;div %{vmarker}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{vknob}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{mute}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{timeleft}&amp;gt;%{hr_elp}:%{min_elp}:%{sec_elp} | %{hr_dur}:%{min_dur}:%{sec_dur}&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{next}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div %{prev}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;ul class=&amp;quot;bottom&amp;quot;&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;div %{scrubber}&amp;gt;&amp;lt;div %{loaded}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{playhead}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div %{scrubberdrag}&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
Ah, much better. But a little bit cryptic, though. Of course you noted the ”%{}”-tags. And of course they are just place-holders which are overwritten during runtime. Assumed you have a player having the &lt;strong&gt;cssClassPrefix&lt;/strong&gt; set to &lt;em&gt;pp&lt;/em&gt; (which is the default) the controlbar plugin would generate the following &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; based on the above template - the timecodes are just examples of course:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;ul class=&amp;quot;ppleft&amp;quot;&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppplay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;pppause&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;pptitle&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;ul class=&amp;quot;ppright&amp;quot;&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppfsexit&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ppfsenter&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppvmax&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppvslider&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;ppvmarker&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ppvknob&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppmute&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;pptimeleft&amp;quot;&amp;gt;00:30:12 | 00:33:44&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppnext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppprev&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;ul class=&amp;quot;ppbottom&amp;quot;&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;div class=&amp;quot;ppscrubber&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;pploaded&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ppplayhead&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;ppscrubberdrag&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;dedicated_tags&quot; id=&quot;dedicated_tags&quot;&gt;Dedicated Tags&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The following tags are replaced by &lt;em&gt;class&lt;/em&gt; attributes and are bound to specific controlbar functions. Eg. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;div %{play}&amp;gt;PLAY&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;
will become
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;div class=&amp;quot;ppplay&amp;quot;&amp;gt;PLAY&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;
and will be bound to a “click” handler which causes the player to start playback once triggered.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit153&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;tag var&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;strong&gt;Usage / Description&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; playhead &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Area indicating the current playhead position / current timeindex in percent of the total duration -  “width”-style is set accordingly. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; loaded &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Area indicating how much of the media file has been loaded in percent -  “width”-style is set accordingly. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; scrubber &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Wrapper for the &lt;em&gt;playhead&lt;/em&gt; &amp;amp; &lt;em&gt;loaded&lt;/em&gt; marker &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; scrubberdrag &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A knob which enables “live scrubbing” &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; play &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The play-button. Is visible if player is paused, invisible elsewise. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; pause &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The pause-button. Is visible if player is playing, invisible if paused. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; stop &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The stop-button. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; prev &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; “Previous” button &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; next &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; “Next” button &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; rewind &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; “Rewind” button (-5 secs. scrubbing, decreasing) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Forward &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; “Forward” button (+5 secs. scrubbing, increasing) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; fsexit &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Exit fullscreen button. Is invisible if player is in fullscreen mode. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; fsenter &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Enter fullscreen button. Is invisible if player is NOT in fullscreen mode. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; loquality &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Set the playback quality to an alternate, lower one. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; hiquality &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Sets the playback quality to the highest possible (and configured) one. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vslider &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Wrapper for the “Volume Marker” &lt;em&gt;vmarker&lt;/em&gt; and &lt;em&gt;vknob&lt;/em&gt;. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vmarker &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Area indicating the current volume in percent - “width”-style is set accordinigly. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vknob &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The knob which can be dragged and dropped by the user in order to set the volume. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; mute &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The mute-button - sets volume to 0 when clicked. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; unmute &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The unmute-button - sets volume to the one prior muting. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vmax &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The mute-button - sets volume to 100 when clicked. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; title &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Once an item starts playback, the innerHTML of this is filled with the current item´s title. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row23&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; draghandle &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; If used the whole controlbar can be dragged and drop within boundaries of the media display. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row24&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; open &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row25&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; close &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row26&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; loopon &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row27&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; loopoff &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT153 TABLE [4027-5883] --&gt;
&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;timecode_tags&quot; id=&quot;timecode_tags&quot;&gt;Timecode Tags&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit154&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;tag var&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;strong&gt;Usage / Description&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; sec_dur &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The seconds string of the current media element´s total duration. E.g. if duration is 130 seconds, sec_dur=10, if duration is 60 seconds,  sec_dur=00, if duration is 30 seconds, sec_dur=30 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; min_dur &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The minutes string of the current media element´s total duration. E.g. if duration is 130 seconds, min_dur=02, if duration is 60 seconds,  min_dur=01, if duration is 30 seconds, min_dur=00 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; hr_dur &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The hours string of the current media element´s total duration. E.g. if duration is 130 seconds, hr_dur=00, if duration is 3600 seconds,  hr_dur=01, if duration is 4000 seconds, hr_dur=01 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; sec_elp &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Follows the same scheme like &amp;#039;sec_dur&amp;#039; but is based on the media time elapsed &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; min_elp &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Follows the same scheme like &amp;#039;min_dur&amp;#039; but is based on the media time elapsed &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; hr_elp &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Follows the same scheme like &amp;#039;hr_dur&amp;#039; but is based on the media time elapsed &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; sec_rem &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Follows the same scheme like &amp;#039;sec_dur&amp;#039; but is based on the media time remaining. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; min_rem &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Follows the same scheme like &amp;#039;min_dur&amp;#039; but is based on the media time remaining. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; hr_rem &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Follows the same scheme like &amp;#039;hr_dur&amp;#039; but is based on the media time remaining. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT154 TABLE [5909-7117] --&gt;
&lt;p&gt;
This way you can use a template string like this: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;#039;duration: %{hr_dur}:%{min_dur}:%{sec_dur} | remaining: %{hr_rem}:%{min_rem}:%{sec_rem}&amp;#039;&lt;/pre&gt;

&lt;p&gt;
Assumed you have a media file with a duration of 5.640 seconds (94 minutes), after 228 seconds of playback the above string will end up in this: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;#039;duration: 01:34:00 | remaining: 01:30:12&amp;#039;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;open_tags&quot; id=&quot;open_tags&quot;&gt;Open Tags&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
All tags which are not recognized as “dedicated”- or “timecode”- tags can be used for what ever you want to. %{myname} will become &amp;#039;class=“ppmyname”&amp;#039;, %{foo} will become &amp;#039;class=“ppfoo”&amp;#039; and so on. As such you get classes taking the cssClassPrefix-config-option into consideration.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT152 SECTION &quot;Customizing the Controlbar´s Layout&quot; [963-7783] --&gt;
&lt;h2 class=&quot;sectionedit155&quot;&gt;&lt;a name=&quot;customizing_the_css&quot; id=&quot;customizing_the_css&quot;&gt;Customizing the CSS&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
… is easy. As stated above all layout relevant stuff getting to live by a player instance is managed via plugins. Once you know the class-names of plugin-generated containers you can pimp them via &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;. From this point of view the &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; bundled with the official distribution is a &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; designing the output of the “controlbar-” and “display-” plugins.
&lt;/p&gt;

&lt;p&gt;
To simplify things a little all class-names are prefixed with “pp” (which is a short for “Projekktor Player”). This prefix can be reconfigured for each installation but most people use the default “pp” one. Those who don´t should care for the relevant &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; changes for themselves. 
&lt;/p&gt;

&lt;p&gt;
Below the classes used in the official distro - without prefix:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit156&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;classname&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;strong&gt;Description&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; playhead &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Area indicating the current playhead position / current timeindex in percent of the total duration -  “width”-style is set accordingly. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; loaded &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Area indicating how much of the media file has been loaded in percent -  “width”-style is set accordingly. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; scrubber &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Wrapper for the &lt;em&gt;playhead&lt;/em&gt; &amp;amp; &lt;em&gt;loaded&lt;/em&gt; marker &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; scrubberdrag &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A knob which enables “live scrubbing” &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; play &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The play-button. Is visible if player is paused, invisible elsewise. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; pause &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The pause-button. Is visible if player is playing, invisible if paused. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; prev &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; “Previous” button &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; fsexit &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Exit fullscreen button. Is invisible if player is in fullscreen mode. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; fsenter &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Enter fullscreen button. Is invisible if player is NOT in fullscreen mode. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vslider &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Wrapper for the “Volume Marker” &lt;em&gt;vmarker&lt;/em&gt; and &lt;em&gt;vknob&lt;/em&gt;. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vmarker &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Area indicating the current volume in percent - “width”-style is set accordinigly. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vknob &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The knob which can be dragged and dropped by the user in order to set the volume. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; mute &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The mute-button - sets volume to 0 when clicked. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; vmax &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The mute-button - sets volume to 100 when clicked. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; title &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Once an item starts playback, the innerHTML of this is filled with the current item´s title. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; start &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The startbutton showing up during IDLE &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; buffering &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; The buffer-indicator &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT156 TABLE [8516-9888] --&gt;
&lt;/div&gt;
&lt;!-- EDIT155 SECTION &quot;Customizing the CSS&quot; [7784-9892] --&gt;
&lt;h2 class=&quot;sectionedit157&quot;&gt;&lt;a name=&quot;projekktor-izing_anything&quot; id=&quot;projekktor-izing_anything&quot;&gt;Projekktor-izing Anything&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
… a very cool but complex feature to be described later.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT157 SECTION &quot;Projekktor-izing Anything&quot; [9893-9991] --&gt;
&lt;h2 class=&quot;sectionedit158&quot;&gt;&lt;a name=&quot;share_your_work&quot; id=&quot;share_your_work&quot;&gt;Share your Work&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
If you made a theme for your own why not give us a note? We like totally love to see new themes and we would be proud to featured yours in our download section. ZIP all relevant files and post a link to the archive to your &lt;a href=&quot;http://www.projekktor.com/board&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/board&quot;&gt;forum&lt;/a&gt;. Don´t forget to provide your name and &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to your homepage. Please note that we will only re-publish themes which are under &lt;acronym title=&quot;GNU General Public License&quot;&gt;GPL&lt;/acronym&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT158 SECTION &quot;Share your Work&quot; [9992-] --&gt;</description>
            <author>operator</author>
            <pubDate>Tue, 24 Apr 2012 09:38:58 +0200</pubDate>
        </item>
        <item>
            <title>Building Projekktor from Source - [The Controller and Tools] </title>
            <link>http://www.projekktor.com/docs/build?rev=1334837184&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit159&quot;&gt;&lt;a name=&quot;building_projekktor_from_source&quot; id=&quot;building_projekktor_from_source&quot;&gt;Building Projekktor from Source&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT159 SECTION &quot;Building Projekktor from Source&quot; [1-47] --&gt;
&lt;h3 class=&quot;sectionedit160&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Once you downloaded the player´s source you will find the script separated into multiple files. 
In order to get the un-compressed and un-merged Javascript running you need to include the mentioned files one
by one to your development page  or merge them into a single file. The most important trick is:
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;Including / merging ALL files will fail. Also be aware that &lt;strong&gt;projekktor.js MUST BE INCLUDED FIRST&lt;/strong&gt; - after jQuery of course.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT160 SECTION &quot;General&quot; [48-523] --&gt;
&lt;h3 class=&quot;sectionedit161&quot;&gt;&lt;a name=&quot;directory_structure&quot; id=&quot;directory_structure&quot;&gt;Directory Structure&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The /js path of the repository holds four sub-directories:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; jQuery - Includes one or more incarnations of jQuery for testing purposes.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; controller - Holds the player´s core controller, models and basic tools.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; models - Holds, well, the playback models.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; plugins - Holds (not so) optional plugins.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; parsers - Some custom reel parser functions needed to convert incoming feed into the Projekktor playlist format. (coming up)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT161 SECTION &quot;Directory Structure&quot; [524-997] --&gt;
&lt;h3 class=&quot;sectionedit162&quot;&gt;&lt;a name=&quot;the_controller_and_tools&quot; id=&quot;the_controller_and_tools&quot;&gt;The Controller and Tools&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor´s controller is generated out of all /js/controller/projekktor.*.js files. 
Each of the following files is strictly obligatory. It´s vital to load projekktor.js first.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.js - The player´s controller itself.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.config.js - The default configuration object with all available config parameters.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.utils.js - A set of more or less useful utility-functions used within the player.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.plugininterface.js - A basic plugin-prototype all plugins are extended from.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT162 SECTION &quot;The Controller and Tools&quot; [998-1573] --&gt;
&lt;h3 class=&quot;sectionedit163&quot;&gt;&lt;a name=&quot;the_models&quot; id=&quot;the_models&quot;&gt;The Models&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The player models handle the content-playout itself. Some of them are obligatory, some are optional and some
will replace other ones depending on their setup.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;player.js - The model prototype - obligatory&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;player.NA.js - “Invalid File” dummdy model - obligatory&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.playlist.js - Allows to load a playlist from within a playlist - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.audio.video.js - Native audio / video support - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.audio.video.flash.js - Flash audio / video support featuring Jarisplayer - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.jwflash.js - Flash audio / video support featuring JWplayer - replaces “player.audio.video.flash.js” - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.youtube.js - Youtube &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; support - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.image.html.js - Displays images and &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; pages as regular content - optional&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT163 SECTION &quot;The Models&quot; [1574-2388] --&gt;
&lt;h3 class=&quot;sectionedit164&quot;&gt;&lt;a name=&quot;the_default_plugins&quot; id=&quot;the_default_plugins&quot;&gt;The Default Plugins&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; projekktor.display.js - holds the video / poster / image screen as well as the start button, the buffer icon and the logo. Not including this will make an extremely boring video player.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; projekktor.controlbar.js - the custom control bar&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT164 SECTION &quot;The Default Plugins&quot; [2389-2667] --&gt;
&lt;h3 class=&quot;sectionedit165&quot;&gt;&lt;a name=&quot;the_parsers&quot; id=&quot;the_parsers&quot;&gt;The Parsers&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
(coming up)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT165 SECTION &quot;The Parsers&quot; [2668-] --&gt;</description>
            <author>operator</author>
            <pubDate>Thu, 19 Apr 2012 14:06:24 +0200</pubDate>
        </item>
        <item>
            <title>SPEAKKER - The Free HTML5 Audio Player - [SPEAKKER - The Free HTML5 Audio Player] </title>
            <link>http://www.projekktor.com/docs/speakker?rev=1332941351&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit166&quot;&gt;&lt;a name=&quot;speakker_-_the_free_html5_audio_player&quot; id=&quot;speakker_-_the_free_html5_audio_player&quot;&gt;SPEAKKER - The Free HTML5 Audio Player&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You don´t know what Speakker is? Go &lt;a href=&quot;http://www.speakker.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.speakker.com&quot;&gt;here&lt;/a&gt; to learn more.
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;AS OF March, 28th 2012 THIS DOC is outdated and currently being rewritten. Sorry for any inconveniences.
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT166 SECTION &quot;SPEAKKER - The Free HTML5 Audio Player&quot; [1-269] --&gt;
&lt;h2 class=&quot;sectionedit167&quot;&gt;&lt;a name=&quot;quick_install_guide&quot; id=&quot;quick_install_guide&quot;&gt;Quick Install Guide&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Mounting Speakker into any website is quick and very straight forward:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Make sure your page loads jQuery V1.4.2 or higher&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upload the “speakker”-folder of the download archive to your site. Make sure this includes all directories and files within. Speakker will automatically load it´s flash fallback component files from there. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Inlude the “projekktor.min.js”.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Inlude the “speakker.min.js”.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Inlude “speakker.css” and “mspeakker.css”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create an empty &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; container where you want the player to sit on.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Instantiate as described below.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Done.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Something similar to this should be in your page´s header now:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;speakker/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;!-- INCLUDE SPEAKKER --&amp;gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;speakker/css/speakker.css&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;speakker/css/mspeakker.css&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;speakker/projekktor.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;speakker/speakker.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;!-- That´s it --&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT167 SECTION &quot;Quick Install Guide&quot; [270-1398] --&gt;
&lt;h2 class=&quot;sectionedit168&quot;&gt;&lt;a name=&quot;instantiating_the_tiny_player&quot; id=&quot;instantiating_the_tiny_player&quot;&gt;Instantiating the tiny Player&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Assumed you´ve something like this somewhere in your markup:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;div class=&amp;quot;speakkerSmall&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;p&gt;
You can bring up the small version of the player with this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
$(document).ready(function() {	
	$(&amp;#039;.speakkerSmall&amp;#039;).speakker({
		file: &amp;#039;http://url/toyour/music.mp3&amp;#039;,
		title: &amp;#039;one single MP3&amp;#039;,
		theme: &amp;#039;light&amp;#039;,
		poster: &amp;#039;cover.jpg&amp;#039;
	});
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT168 SECTION &quot;Instantiating the tiny Player&quot; [1399-1849] --&gt;
&lt;h2 class=&quot;sectionedit169&quot;&gt;&lt;a name=&quot;instantiating_the_big_boy&quot; id=&quot;instantiating_the_big_boy&quot;&gt;Instantiating the Big Boy&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The small Speakker is nice but the big one rocks. It´s designed for playlists. That´s why we want to focus on setting up a playlist driven instance here. Playlists will work for the tiny variant also - but who cares.
&lt;/p&gt;

&lt;p&gt;
To bring up the big sticky Speakker just use &lt;strong&gt;$().speakker&lt;/strong&gt; (without a selector) as shown below. The script will generate the necessary &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; elements and will glue the player to the bottom of the page.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
$(document).ready(function() {
	$().speakker({
		file: &amp;#039;http://www.speakker.com/opentape/code/projekktor.php&amp;#039;,
		playlist: true,
		theme: &amp;#039;light&amp;#039;,
		admin: &amp;#039;http://www.speakker.com/opentape/code/login.php&amp;#039;,
		lastfm: &amp;#039;http://www.lastfm.de/music/paniq&amp;#039;
	});
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
As you can see &lt;strong&gt;file&lt;/strong&gt; does not point to an OGV or &lt;acronym title=&quot;Moving Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; but to a &lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt; file. This is where the JSON playlist is generated. To learn more about playlists please refer the &lt;a href=&quot;http://www.projekktor.com/docs/playlists&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/docs/playlists&quot;&gt;Projekktor Playlist Docu&lt;/a&gt;. To get a first insight just open the mentioned &lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt; to see what it pumps out: &lt;a href=&quot;http://www.speakker.com/opentape/code/projekktor.php&quot; class=&quot;urlextern&quot; title=&quot;http://www.speakker.com/opentape/code/projekktor.php&quot;&gt;http://www.speakker.com/opentape/code/projekktor.php&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;
You can´t apply &lt;a href=&quot;http://www.speakker.com/opentape/code/projekktor.php&quot; class=&quot;urlextern&quot; title=&quot;http://www.speakker.com/opentape/code/projekktor.php&quot;&gt;http://www.speakker.com/opentape/code/projekktor.php&lt;/a&gt; to your local test installation or within a page at an other domain due to Javascript security restrictions.

&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
To avoid frustration and strange results let Speakker know that you feed him with a playlist by setting &lt;strong&gt;playlist&lt;/strong&gt; to &lt;strong&gt;TRUE&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Et voila… and yes, it is that easy.
&lt;/p&gt;

&lt;p&gt;
Optionally the big player variant features three custom links: “lastfm”, “wikipedia” and “admin”. Setting values for them will enable the corresponding &lt;acronym title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/acronym&gt; elements. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT169 SECTION &quot;Instantiating the Big Boy&quot; [1850-3547] --&gt;
&lt;h2 class=&quot;sectionedit170&quot;&gt;&lt;a name=&quot;config_parameters&quot; id=&quot;config_parameters&quot;&gt;Config Parameters&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;file&lt;/strong&gt; (string): &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to a single audio file or a projekktor playlist holding one or more &lt;br/&gt;

&lt;strong&gt;playlist&lt;/strong&gt; (boolean): Load “file” as JSON playlist on TRUE. Assume a single audio file otherwise. &lt;br/&gt;

&lt;strong&gt;poster&lt;/strong&gt; (string): The default poster / cover for the given file. &lt;br/&gt;

&lt;strong&gt;title&lt;/strong&gt; (string): The player´s title used on single file playback. &lt;br/&gt;

&lt;strong&gt;theme&lt;/strong&gt; (string): Use “dark” or “light” color scheme. &lt;br/&gt;

&lt;strong&gt;fat&lt;/strong&gt; (boolean): Makes the sticky playlist player even bigger if set to TRUE. &lt;br/&gt;

&lt;strong&gt;wikipedia&lt;/strong&gt; (string): &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to the artist´s Wikipedia page if any. &lt;br/&gt;

&lt;strong&gt;lastfm&lt;/strong&gt; (string): &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to the artist´s last.fm page if any. &lt;br/&gt;

&lt;strong&gt;admin&lt;/strong&gt; (string): &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to the admin backend if any. &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT170 SECTION &quot;Config Parameters&quot; [3548-] --&gt;</description>
            <author>operator</author>
            <pubDate>Wed, 28 Mar 2012 15:29:11 +0200</pubDate>
        </item>
        <item>
            <title>Player Events</title>
            <link>http://www.projekktor.com/docs/events?rev=1331111367&amp;do=diff</link>
            <description>
&lt;h2 class=&quot;sectionedit171&quot;&gt;&lt;a name=&quot;player_events&quot; id=&quot;player_events&quot;&gt;Player Events&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This documentation applies to player version V0.8.x and higher.
Please refer to &lt;a href=&quot;http://www.projekktor.com/docs/api#instantiation&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;API, section Instantiation&lt;/a&gt; in order to learn how to add and remove listeners.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;scheduleloading&quot; id=&quot;scheduleloading&quot;&gt;scheduleLoading&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered in case of an &lt;acronym title=&quot;Asynchronous JavaScript and XML&quot;&gt;AJAX&lt;/acronym&gt; call fetching an external playlist from server has been initiated 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;schedulemodified&quot; id=&quot;schedulemodified&quot;&gt;scheduleModified&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Fired whenever an item has been added to or removed from schedule after the player has been initialized successfully.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;scheduled&quot; id=&quot;scheduled&quot;&gt;scheduled&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The initial scheduling process has finished and the player is ready for action.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;configmodified&quot; id=&quot;configmodified&quot;&gt;configModified&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Fired if player configuration has been altered as the result of an &lt;acronym title=&quot;Asynchronous JavaScript and XML&quot;&gt;AJAX&lt;/acronym&gt; call (e.g. in conjunction with “schduleLoading”).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;item_itemindex&quot; id=&quot;item_itemindex&quot;&gt;item (itemIndex)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered once a new item got the “current” focus.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;displayready&quot; id=&quot;displayready&quot;&gt;displayReady&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered as soon as the media display for the current item has been successfully initialized. May result in a poster-image or media playback.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;pluginsready&quot; id=&quot;pluginsready&quot;&gt;pluginsReady&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered as soon as all plugins are ready to go for the current item.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;ready&quot; id=&quot;ready&quot;&gt;ready&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered as soon as the player is ready for action and ready to play the current item. This is the case after “displayReady” and “pluginsReady” has been fired. Depending on “autostart” or “continuous” config this may either result in an IDLE or a PLAYING state.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;starting&quot; id=&quot;starting&quot;&gt;starting&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The player got triggered to start and synchronizes the model with the controller.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;start&quot; id=&quot;start&quot;&gt;start&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The media playback started and the first frame has been displayed.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;state_string&quot; id=&quot;state_string&quot;&gt;state (string)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered when ever the state of the current playback component changes to one of the following:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5&gt;&lt;a name=&quot;possible_states&quot; id=&quot;possible_states&quot;&gt;possible states&lt;/a&gt;&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;strong&gt;IDLE&lt;/strong&gt;
The playback component is waiting for user-interaction and has not started playback yet. Usually a poster-image is shown at this state.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;AWAKENING&lt;/strong&gt;
The playback component begins playback for the very first time and initializes. This may be either if “autoplay” is FALSE and the user clicked “start” or the player is configured to AUTOPLAY and starts automatically.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;PLAYING&lt;/strong&gt;
The playback component is currently playing (SNAFU).
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;PAUSED&lt;/strong&gt;
The playback component has been paused by the user or via an external &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; call.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;STOPPED&lt;/strong&gt;
The playback component has stopped playing either because of user-interaction or close of the corresponding browser window.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;COMPLETED&lt;/strong&gt;
The current media item has been played back completely.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;ERROR&lt;/strong&gt;
An error occured.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;buffer_string&quot; id=&quot;buffer_string&quot;&gt;buffer (string)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered when ever the buffer-state of the current playback component changed.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5&gt;&lt;a name=&quot;possible_states1&quot; id=&quot;possible_states1&quot;&gt;possible states&lt;/a&gt;&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;strong&gt;EMPTY&lt;/strong&gt;
The buffer under-run, the playback component has been paused and new media data is being buffered. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;FULL&lt;/strong&gt;
Enough data has been buffered in order to play the current media item back.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;volume_currentvolumefloat&quot; id=&quot;volume_currentvolumefloat&quot;&gt;volume (currentVolume:float)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered on change of volume of the current playback component. Is also triggered during the playback component´s initialization process.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;mute&quot; id=&quot;mute&quot;&gt;mute&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
(&amp;gt; V0.9.05) Fired once the player gets muted (volume equal 0).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;unmute&quot; id=&quot;unmute&quot;&gt;unmute&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
(&amp;gt; V0.9.05) Fired once the player gets unmuted (volume gets adjusted from 0 to &amp;gt;0).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;resume&quot; id=&quot;resume&quot;&gt;resume&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
(&amp;gt; V0.9.05) Fired once the current media continues playback after a prior “PAUSED” state.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;time_float&quot; id=&quot;time_float&quot;&gt;time (float)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Continuously triggered during change of play-head position but at a maximum of a 500 millisecond interval.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;progress_float&quot; id=&quot;progress_float&quot;&gt;progress (float)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Continuously triggered during change of buffer-load but at a maximum of a 500 millisecond interval. Will stop once the media file has been completely buffered or became available for random-seeking.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;seek_float&quot; id=&quot;seek_float&quot;&gt;seek (float)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The user or a script sent the “setSeek” command and the player component does everything necessary in order to continue playback from the specified position. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;fullscreen_boolean&quot; id=&quot;fullscreen_boolean&quot;&gt;fullscreen (boolean)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the player switches from or into fullscreen / full viewport mode.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;resize&quot; id=&quot;resize&quot;&gt;resize&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The document or the player itself has been resized.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;scale&quot; id=&quot;scale&quot;&gt;scale&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered once the current media (video or image) has been scaled to fit the player dimensions.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;qualitychange&quot; id=&quot;qualitychange&quot;&gt;qualitychange&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The playback-quality has been changed.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;detach&quot; id=&quot;detach&quot;&gt;detach&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The current playback component detached the actual media and destroyed itself successfully.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;mousemove&quot; id=&quot;mousemove&quot;&gt;mousemove&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The user moved the mouse while the pointer is over the player instance.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;mouseenter&quot; id=&quot;mouseenter&quot;&gt;mouseenter&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The user moved the mouse pointer over the player instance.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;leftclick_rightclick_middleclick_clickevent&quot; id=&quot;leftclick_rightclick_middleclick_clickevent&quot;&gt;leftclick / rightclick / middleclick (Click:event&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the player either receives a left-, right- or middle- click.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;mouseleave&quot; id=&quot;mouseleave&quot;&gt;mouseleave&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The user moved the mouse beyond the borders of the player instance.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;key_keydowneventevent&quot; id=&quot;key_keydowneventevent&quot;&gt;key (KeydownEvent:event)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The player instance has the focus and the user hit a key on keyboard (or remote control). Note that most keys (e.g. alphanumeric) will result in a keyCode equal 0 due to underlying security restrictions.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;done&quot; id=&quot;done&quot;&gt;done&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered if the current item is the last one scheduled and reached the “COMPLETED” state ⇒ “playlist completely played back”
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>operator</author>
            <pubDate>Wed, 07 Mar 2012 10:09:27 +0200</pubDate>
        </item>
        <item>
            <title>Related Plugin - [Config Options] </title>
            <link>http://www.projekktor.com/docs/plugins_related?rev=1330684458&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit172&quot;&gt;&lt;a name=&quot;related_plugin&quot; id=&quot;related_plugin&quot;&gt;Related Plugin&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT172 SECTION &quot;Related Plugin&quot; [1-30] --&gt;
&lt;h1 class=&quot;sectionedit173&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Provides a “related videos” and “share me” postroll display.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT173 SECTION &quot;General&quot; [31-116] --&gt;
&lt;h1 class=&quot;sectionedit174&quot;&gt;&lt;a name=&quot;install_preparation&quot; id=&quot;install_preparation&quot;&gt;Install / Preparation&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT174 SECTION &quot;Install / Preparation&quot; [117-153] --&gt;
&lt;h3 class=&quot;sectionedit175&quot;&gt;&lt;a name=&quot;scripts&quot; id=&quot;scripts&quot;&gt;Scripts&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Include the “projekktor.related.js”. Make sure its loaded after “projekktor.min.js”. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT175 SECTION &quot;Scripts&quot; [154-260] --&gt;
&lt;h3 class=&quot;sectionedit176&quot;&gt;&lt;a name=&quot;html&quot; id=&quot;html&quot;&gt;HTML&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
No preparations required. Loads directly into the player´s &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT176 SECTION &quot;HTML&quot; [261-343] --&gt;
&lt;h3 class=&quot;sectionedit177&quot;&gt;&lt;a name=&quot;css&quot; id=&quot;css&quot;&gt;CSS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Include the “projekktor.related.css” to your page´s &amp;lt;head&amp;gt; or copy and paste the mentioned &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; into your theme.css. Alter at will.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT177 SECTION &quot;CSS&quot; [344-492] --&gt;
&lt;h1 class=&quot;sectionedit178&quot;&gt;&lt;a name=&quot;configuration&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT178 SECTION &quot;Configuration&quot; [493-522] --&gt;
&lt;h3 class=&quot;sectionedit179&quot;&gt;&lt;a name=&quot;setup&quot; id=&quot;setup&quot;&gt;Setup&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Make sure you activate the plugin by adding it to the event dispatcher. To do so set “&lt;strong&gt;addplugins&lt;/strong&gt;” accordingly, e.g.:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;var player = projekktor(&amp;#039;#player_a&amp;#039;, {
   controls: true,
   autoplay: false,
   addplugins: [&amp;#039;related&amp;#039;],
   playlist: [   
      {
         0: {src:&amp;#039;http://www.projekktor.com/video/mc.mp4&amp;#039;, type:&amp;quot;video/mp4&amp;quot;},
      }
   ],
   plugin_related: {
       related: {
            enabled: true,
            title: &amp;#039;Related Videos&amp;#039;,
            items: [
                {poster: &amp;#039;./videoposter1.jpg&amp;#039;, url: &amp;#039;http://www.yoursite.com/vid1&amp;#039;, title:&amp;#039;Title 1&amp;#039;},
                {poster: &amp;#039;./videoposter2.jpg&amp;#039;, url: &amp;#039;http://www.yoursite.com/vid2&amp;#039;, title:&amp;#039;Title 2&amp;#039;},
                {poster: &amp;#039;./videoposter3.jpg&amp;#039;, url: &amp;#039;http://www.yoursite.com/vid3&amp;#039;, title:&amp;#039;Title 3&amp;#039;}
            ]
       }
   }
   
});&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT179 SECTION &quot;Setup&quot; [523-1368] --&gt;
&lt;h3 class=&quot;sectionedit180&quot;&gt;&lt;a name=&quot;config_options&quot; id=&quot;config_options&quot;&gt;Config Options&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;showonstart_booleanfalse&quot; id=&quot;showonstart_booleanfalse&quot;&gt;showOnStart (Boolean:false)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Display the “related”-panel right after the player initialize and before starting any video. Useful during &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; customization.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;related_object&quot; id=&quot;related_object&quot;&gt;related (Object)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Holds the setup for the “related videos” lineup.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;relatedenable_booleantrue&quot; id=&quot;relatedenable_booleantrue&quot;&gt;related.enable (Boolean:true)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Enable / Disable related items.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;relatedtitle_stringrelated_videos&quot; id=&quot;relatedtitle_stringrelated_videos&quot;&gt;related.title (String:&amp;#039;Related Videos&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The headline for all related items.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;relateditems_array&quot; id=&quot;relateditems_array&quot;&gt;related.items (Array:[])&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
An array of items to show within the “related videos” section. E.g.:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[
  {poster: &amp;#039;http://www.img.com/img1.jpg&amp;#039;, url: &amp;#039;http://www.projekktor.com/vid1&amp;#039;, title:&amp;#039;Title 1&amp;#039;}, 
  {poster: &amp;#039;http://www.img.com/img2.jpg&amp;#039;, url: &amp;#039;http://www.projekktor.com/vid2&amp;#039;, title:&amp;#039;Title 2&amp;#039;},
  {poster: &amp;#039;http://www.img.com/img3.jpg&amp;#039;, url: &amp;#039;http://www.projekktor.com/vid3&amp;#039;, title:&amp;#039;Title 3&amp;#039;} 
]&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;share_object&quot; id=&quot;share_object&quot;&gt;share (Object)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Holds the setup for the link to provide for content sharing.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;shareenable_booleantrue&quot; id=&quot;shareenable_booleantrue&quot;&gt;share.enable (Boolean:true)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Enable / Disable the link-share-textarea.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;sharetitle_stringlink_to_this_video&quot; id=&quot;sharetitle_stringlink_to_this_video&quot;&gt;share.title (String:&amp;#039;Link to this Video&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The headline for the shared &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;sharecode_stringhttpplayerurl_vidid_id&quot; id=&quot;sharecode_stringhttpplayerurl_vidid_id&quot;&gt;share.code (String:&amp;#039;http://%{playerurl}?vidid=%{ID}&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; to provide as “shared &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;”. You can use two placeholders here to make the player generate the string automatically.
&lt;/p&gt;

&lt;p&gt;
%{playerurl} will get replaced by the window.location.href of the affected player instance. Note that this will be the iframe-&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; for embeddable players. 
&lt;/p&gt;

&lt;p&gt;
%{ID} will be replaced either by a randomly generated string of 8 characters or by an ID you specified in your playlist setup by setting “id” within the item specific config block.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;embed_object&quot; id=&quot;embed_object&quot;&gt;embed(Object)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Holds the setup for the shareable embed code.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;embedenable_booleantrue&quot; id=&quot;embedenable_booleantrue&quot;&gt;embed.enable (Boolean:true)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Enable / Disable the embed-code-textarea.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;embedtitle_stringembed_this_video&quot; id=&quot;embedtitle_stringembed_this_video&quot;&gt;embed.title (String:&amp;#039;Embed this Video&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The headline for embedding.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;embedcode_stringiframe_id_embedid_src_playerurl_vidid_id_width_640_height_385_frameborder_0_iframe&quot; id=&quot;embedcode_stringiframe_id_embedid_src_playerurl_vidid_id_width_640_height_385_frameborder_0_iframe&quot;&gt;embed.code (String:&amp;#039;&amp;lt;iframe id=&amp;quot;%{embedid}&amp;quot; src=&amp;quot;%{playerurl}?vidid=%{ID}&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;385&amp;quot; frameborder=&amp;quot;0&amp;quot; &amp;lt;/iframe&amp;gt;&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The code build the embed code from.
&lt;/p&gt;

&lt;p&gt;
%{playerurl} will get replaced by the window.location.href of the affected player instance. Note that this will be the iframe-&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; for embeddable players. 
&lt;/p&gt;

&lt;p&gt;
%{embedid} will be replaced by the iframe-ID as defined in the parent window.
&lt;/p&gt;

&lt;p&gt;
%{ID} will be replaced either by a randomly generated string of 8 characters or by an ID you specified in your playlist setup by setting “id” within the item specific config blo
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;replay_object&quot; id=&quot;replay_object&quot;&gt;replay(Object)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Holds the setup for the “related videos” lineup.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;replayenable_booleantrue&quot; id=&quot;replayenable_booleantrue&quot;&gt;replay.enable (Boolean:true)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Enable / Disable the replay-button.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;replaytitle_stringembed_this_video&quot; id=&quot;replaytitle_stringembed_this_video&quot;&gt;replay.title (String:&amp;#039;Embed this Video&amp;#039;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Title for the very same button.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT180 SECTION &quot;Config Options&quot; [1369-] --&gt;</description>
            <author>operator</author>
            <pubDate>Fri, 02 Mar 2012 11:34:18 +0200</pubDate>
        </item>
        <item>
            <title>General F.A.Q. - [Where can I find the release roadmap of this project?] </title>
            <link>http://www.projekktor.com/docs/faq?rev=1327407555&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit181&quot;&gt;&lt;a name=&quot;general_faq&quot; id=&quot;general_faq&quot;&gt;General F.A.Q.&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT181 SECTION &quot;General F.A.Q.&quot; [1-30] --&gt;
&lt;h3 class=&quot;sectionedit182&quot;&gt;&lt;a name=&quot;where_can_i_find_the_release_roadmap_of_this_project&quot; id=&quot;where_can_i_find_the_release_roadmap_of_this_project&quot;&gt;Where can I find the release roadmap of this project?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor releases are published spontaneously. This is (still) no full time project so I can´t give guarantees for anything at this point. Nevertheless the project is still under active development and will be at least till end 2012.
&lt;/p&gt;

&lt;p&gt;
If you need a special feature you can buy support. If this is an option for you please feel free to &lt;a href=&quot;http://spinningairwhale.com/contact/&quot; class=&quot;urlextern&quot; title=&quot;http://spinningairwhale.com/contact/&quot;&gt;contact me&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT182 SECTION &quot;Where can I find the release roadmap of this project?&quot; [31-486] --&gt;
&lt;h3 class=&quot;sectionedit183&quot;&gt;&lt;a name=&quot;why_does_the_fullscreen_button_just_make_the_player_fill_my_browser_window_and_the_scrollbars_disappear&quot; id=&quot;why_does_the_fullscreen_button_just_make_the_player_fill_my_browser_window_and_the_scrollbars_disappear&quot;&gt;Why does the fullscreen button just make the player fill my browser window and the scrollbars disappear?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
In some browsers “Fullscreen” is “full viewport” only because they don´t (yet) support &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; fullscreen. Due to the underlying least common denominator principle Flash- and HTML5- fullscreen are handled the same way. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT183 SECTION &quot;Why does the fullscreen button just make the player fill my browser window and the scrollbars disappear?&quot; [487-820] --&gt;
&lt;h3 class=&quot;sectionedit184&quot;&gt;&lt;a name=&quot;what_is_the_difference_between_ogv_and_ogg&quot; id=&quot;what_is_the_difference_between_ogv_and_ogg&quot;&gt;What is the difference between .ogv and .ogg&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The file extension it is. Usually OGV is used for ogg/theora encoded video while OGA is for ogg/vorbis encoded audio. For historical reasons sometimes OGG is used instead of OGA and in order to guarantee perfect confusions OGG is also used for OGV. At the end its up to you to clean up the mess.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT184 SECTION &quot;What is the difference between .ogv and .ogg&quot; [821-1172] --&gt;
&lt;h3 class=&quot;sectionedit185&quot;&gt;&lt;a name=&quot;i_tried_to_apply_the_autostart_attribute_to_the_video_tag_in_order_to_make_the_video_play_well_automatically_but_something_is_messed_up&quot; id=&quot;i_tried_to_apply_the_autostart_attribute_to_the_video_tag_in_order_to_make_the_video_play_well_automatically_but_something_is_messed_up&quot;&gt;I tried to apply the autostart attribute to the VIDEO tag in order to make the video play, well, automatically, but something is messed up.&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This is a known issue with some browsers. Some browsers initialize their native players &lt;em&gt;before&lt;/em&gt; they fire the &lt;em&gt;contentLoaded&lt;/em&gt; or similar event which triggers Projekktor to initialize. As such, if you apply the &lt;em&gt;autostart&lt;/em&gt; attribute the affected videos will start playback instantly for a glimpse, stop and the new Projekktor instance is started. This behavior causes some interesting effects but most of time this ends up in a total mess.
&lt;/p&gt;

&lt;p&gt;
To avoid that you should use the &lt;em&gt;autoplay&lt;/em&gt; = &lt;em&gt;true&lt;/em&gt; config.option of Projekktor itself, e.g.:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; projekktor(&amp;#039;#player_a&amp;#039;, {
     volume: 0.8,
     autoplay: true
 });&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT185 SECTION &quot;I tried to apply the autostart attribute to the VIDEO tag in order to make the video play, well, automatically, but something is messed up.&quot; [1173-1954] --&gt;
&lt;h3 class=&quot;sectionedit186&quot;&gt;&lt;a name=&quot;projekktor_s_jarisplayer_flash_component_doesn_t_support_proper_put_in_a_lot_of_freaky_flashstuff_here&quot; id=&quot;projekktor_s_jarisplayer_flash_component_doesn_t_support_proper_put_in_a_lot_of_freaky_flashstuff_here&quot;&gt;Projekktor´s Jarisplayer Flash component doesn´t support proper (...put in a lot of freaky flashstuff here...)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This projekkt is all about HTML5 and future orientated, re-liberalized media delivery and not Flash. 
Deciding to use HTML5 video/audio (or maybe even Projekktor) is not just choosing an other player. 
It´s more like a strategic reorientation.
“In for a penny, in for a pound.” So, Jarisplayer can be used to stream progressively and has very basic RTMP support. 
There are no plans to enlarge the feature set of it. If you want to learn why Projekktor uses Jarisplayer and not JWplayer or Flowplayer 
please check this blog entry: &lt;a href=&quot;http://www.projekktor.com/blog/2010/11/thanks-for-jarisplayer/&quot; class=&quot;urlextern&quot; title=&quot;http://www.projekktor.com/blog/2010/11/thanks-for-jarisplayer/&quot;&gt;http://www.projekktor.com/blog/2010/11/thanks-for-jarisplayer/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Nevertheless for business users we offer alternate Flash models for both, JWPlayer and Flowplayer. 
If you are interested in one of them please feel free to &lt;a href=&quot;http://www.spinningairwhale.com/contact/&quot; class=&quot;urlextern&quot; title=&quot;http://www.spinningairwhale.com/contact/&quot;&gt;get in touch&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT186 SECTION &quot;Projekktor´s Jarisplayer Flash component doesn´t support proper (...put in a lot of freaky flashstuff here...)&quot; [1955-2890] --&gt;
&lt;h1 class=&quot;sectionedit187&quot;&gt;&lt;a name=&quot;browser_issues_-_ie6_ie7_ie8&quot; id=&quot;browser_issues_-_ie6_ie7_ie8&quot;&gt;Browser Issues - IE6, IE7, IE8&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT187 SECTION &quot;Browser Issues - IE6, IE7, IE8&quot; [2891-2936] --&gt;
&lt;h3 class=&quot;sectionedit188&quot;&gt;&lt;a name=&quot;the_theme_layout_video_overlays_subtitles__looks_awful_in_internet_explorer_6_what_s_the_problem&quot; id=&quot;the_theme_layout_video_overlays_subtitles__looks_awful_in_internet_explorer_6_what_s_the_problem&quot;&gt;The theme / layout / video overlays / subtitles / (...) looks awful in Internet Explorer 6. What´s the problem?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The used browser of course. Projekktor should work on &lt;acronym title=&quot;Internet Explorer 6&quot;&gt;IE6&lt;/acronym&gt; but there´s no guarantee because we do not check this. Building the player for &lt;em class=&quot;u&quot;&gt;modern&lt;/em&gt; environmentsand especially for more recent Internet Explorer´s is painful enough. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT188 SECTION &quot;The theme / layout / video overlays / subtitles / (...) looks awful in Internet Explorer 6. What´s the problem?&quot; [2937-3293] --&gt;
&lt;h3 class=&quot;sectionedit189&quot;&gt;&lt;a name=&quot;i_used_the_video_tag_as_eg_seen_in_your_demos_but_the_player_doesn_t_come_up_no_poster_no_controls_nothing&quot; id=&quot;i_used_the_video_tag_as_eg_seen_in_your_demos_but_the_player_doesn_t_come_up_no_poster_no_controls_nothing&quot;&gt;I used the &amp;lt;video&amp;gt; tag as e.g. seen in your demos but the player doesn´t come up. No poster, no controls, nothing.&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&amp;lt;audio&amp;gt; and &amp;lt;video&amp;gt; tags are not natively supported in IE7+8 and Projekktor uses a dirty trick to bypass this. Unfortunately this trick doesn´t work if the tag is wrapped by an other &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; container, make sure it´s a block styled one and under no circumstances a &amp;lt;p&amp;gt;aragraph.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT189 SECTION &quot;I used the &lt;video&gt; tag as e.g. seen in your demos but the player doesn´t come up. No poster, no controls, nothing.&quot; [3294-3695] --&gt;
&lt;h1 class=&quot;sectionedit190&quot;&gt;&lt;a name=&quot;iphone_ipad_and_ipod_issues&quot; id=&quot;iphone_ipad_and_ipod_issues&quot;&gt;iPhone, iPad and iPod Issues&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT190 SECTION &quot;iPhone, iPad and iPod Issues&quot; [3696-3740] --&gt;
&lt;h3 class=&quot;sectionedit191&quot;&gt;&lt;a name=&quot;i_applied_the_autoplay_config_option_as_described_above_but_it_does_not_work_in_iphone_ipad_and_ipod_-_what_s_wrong&quot; id=&quot;i_applied_the_autoplay_config_option_as_described_above_but_it_does_not_work_in_iphone_ipad_and_ipod_-_what_s_wrong&quot;&gt;I applied the autoplay config option as described above but it does not work in iPhone, iPad, and iPod - what´s wrong?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Simply forget it. Autostart video and audio playback doesn´t work on the mentioned devices. This is not a bug but a limitation by Apple. Most likely this is to protect the users from enervating ads and similar spam and to save battery power.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT191 SECTION &quot;I applied the autoplay config option as described above but it does not work in iPhone, iPad, and iPod - what´s wrong?&quot; [3741-4114] --&gt;
&lt;h3 class=&quot;sectionedit192&quot;&gt;&lt;a name=&quot;you_said_autoplay_doesn_t_work_in_ipad_iphone_and_so_on_but_there_are_workarounds_for_this_shouldn_t_you_change_your_field_of_scripting_dude&quot; id=&quot;you_said_autoplay_doesn_t_work_in_ipad_iphone_and_so_on_but_there_are_workarounds_for_this_shouldn_t_you_change_your_field_of_scripting_dude&quot;&gt;You said autoplay doesn´t work in iPad, iPhone and so on, but there are workarounds for this. Shouldn´t you change your field of scripting, dude?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
It is true that there are workarounds to force autoplay e.g. on an iPad. But they are what they are: Workarounds to bypass an intended feature. There is no guarantee that they will work after the next iOS update. As such it doesn´t make any sense to be part of this cat-and-mouse game.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT192 SECTION &quot;You said autoplay doesn´t work in iPad, iPhone and so on, but there are workarounds for this. Shouldn´t you change your field of scripting, dude?&quot; [4115-4560] --&gt;
&lt;h1 class=&quot;sectionedit193&quot;&gt;&lt;a name=&quot;firefox_issues&quot; id=&quot;firefox_issues&quot;&gt;Firefox Issues&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT193 SECTION &quot;Firefox Issues&quot; [4561-4590] --&gt;
&lt;h3 class=&quot;sectionedit194&quot;&gt;&lt;a name=&quot;if_player_is_in_flash_mode_fallback_or_youtube_the_video_restarts_on_fullscreen_toggle_wtf&quot; id=&quot;if_player_is_in_flash_mode_fallback_or_youtube_the_video_restarts_on_fullscreen_toggle_wtf&quot;&gt;If player is in Flash mode (fallback or Youtube) the video restarts on fullscreen toggle. WTF?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This happens thanx to an ancient bug which forces any embedded Flash object to reinitialize in some very special situations. Projekktor unfortunately forces such a situation while expanding the flash fallback component to full viewport. There is a basic workaround implemented but the general issue persists. As such any MP4 and &lt;acronym title=&quot;Moving Picture Experts Group Layer 3&quot;&gt;MP3&lt;/acronym&gt; will restart from the very beginning when ever the user toggles fullscreen. Please refer to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=90268&quot; class=&quot;urlextern&quot; title=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=90268&quot;&gt;bugzilla&lt;/a&gt; for detailed information about this.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT194 SECTION &quot;If player is in Flash mode (fallback or Youtube) the video restarts on fullscreen toggle. WTF?&quot; [4591-5221] --&gt;
&lt;h3 class=&quot;sectionedit195&quot;&gt;&lt;a name=&quot;while_playing_back_ogg_theora_in_firefox_the_player_stops_playback_within_the_first_second_or_so&quot; id=&quot;while_playing_back_ogg_theora_in_firefox_the_player_stops_playback_within_the_first_second_or_so&quot;&gt;While playing back OGG/Theora in Firefox the player stops playback within the first second or so.&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Most likely you´re using Firefox 5 with Firebug enabled. Just disable Firebug and all is good. Please don´t ask. Took my hours to get the trick.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT195 SECTION &quot;While playing back OGG/Theora in Firefox the player stops playback within the first second or so.&quot; [5222-5476] --&gt;
&lt;h1 class=&quot;sectionedit196&quot;&gt;&lt;a name=&quot;general_playback_issues_faq&quot; id=&quot;general_playback_issues_faq&quot;&gt;General Playback Issues F.A.Q.&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;The video could not be loaded, either because the server or network failed or because the format is not supported.&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT196 SECTION &quot;General Playback Issues F.A.Q.&quot; [5477-5642] --&gt;
&lt;h3 class=&quot;sectionedit197&quot;&gt;&lt;a name=&quot;i_want_to_play_a_theora_webm_video_hosted_on_my_own_server_i_ve_checked_the_links_permissions_and_everything_but_firefox_ends_up_with_a_testcard_error_message__what_s_wrong&quot; id=&quot;i_want_to_play_a_theora_webm_video_hosted_on_my_own_server_i_ve_checked_the_links_permissions_and_everything_but_firefox_ends_up_with_a_testcard_error_message__what_s_wrong&quot;&gt;I want to play a THEORA / WEBM video hosted on my own server. I´ve checked the links, permissions and everything but Firefox ends up with a testcard (error message). What´s wrong?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Firefox´ native player requires proper type header responses by the web server. Some older server setups do not know how to handle the *.oga, *.ogg,. *.ogv and / or *.webm extension. In order to make things work create an &lt;strong&gt;.htaccess&lt;/strong&gt; file in your video / audio directory and hack the following lines into it:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;AddType audio/ogg .oga
AddType video/ogg .ogv .ogg
AddType video/webm .webm&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT197 SECTION &quot;I want to play a THEORA / WEBM video hosted on my own server. I´ve checked the links, permissions and everything but Firefox ends up with a testcard (error message). What´s wrong?&quot; [5643-6239] --&gt;
&lt;h3 class=&quot;sectionedit198&quot;&gt;&lt;a name=&quot;the_player_sometimes_plays_a_video_for_a_couple_of_seconds_and_suddenly_ends_up_with_an_error_message_testcard&quot; id=&quot;the_player_sometimes_plays_a_video_for_a_couple_of_seconds_and_suddenly_ends_up_with_an_error_message_testcard&quot;&gt;The player sometimes plays a video for a couple of seconds and suddenly ends up with an error message (testcard).&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
In some browsers with native video support this happens if the media delivering web server uses GZIP compression. Usually this compression makes sense only for text based files (&lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;, &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt;, Javascripts etc.pp.). So you have to check your server setup in order to make sure that at least your media content is NOT being compressed. 
&lt;/p&gt;

&lt;p&gt;
If you do not have access to your httpd.conf you can try to bypass this by adding a .htaccess with the following line:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript&lt;/pre&gt;

&lt;p&gt;
Note that this is a positive list and only text files are compressed now - no video/ogg etc. pp.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT198 SECTION &quot;The player sometimes plays a video for a couple of seconds and suddenly ends up with an error message (testcard).&quot; [6240-7038] --&gt;
&lt;h3 class=&quot;sectionedit199&quot;&gt;&lt;a name=&quot;i_added_a_youtube_video_to_the_playlist_but_all_i_got_is_an_error_message_testcard_why_is_that&quot; id=&quot;i_added_a_youtube_video_to_the_playlist_but_all_i_got_is_an_error_message_testcard_why_is_that&quot;&gt;I added a Youtube video to the playlist but all I got is an error message / testcard. Why is that?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Youtube allows its premium users to disable embedding. This feature not only affects the players you can find in blogs or similar but also the ones provided by the Javascript &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;. The latter one is used to projekktorize Youtube-videos and as such the mentioned option also affects Projekktor. So, in case you stumble upon a “this media can not be…” …something error while using a Youtube video you´ve choosen one which can not be embedded - that´s all. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT199 SECTION &quot;I added a Youtube video to the playlist but all I got is an error message / testcard. Why is that?&quot; [7039-] --&gt;</description>
            <author>operator</author>
            <pubDate>Tue, 24 Jan 2012 13:19:15 +0200</pubDate>
        </item>
        <item>
            <title>Minimum requirements for a Flash Fallback Component - [Events] </title>
            <link>http://www.projekktor.com/docs/flash?rev=1326734976&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit200&quot;&gt;&lt;a name=&quot;minimum_requirements_for_a_flash_fallback_component&quot; id=&quot;minimum_requirements_for_a_flash_fallback_component&quot;&gt;Minimum requirements for a Flash Fallback Component&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT200 SECTION &quot;Minimum requirements for a Flash Fallback Component&quot; [1-68] --&gt;
&lt;h3 class=&quot;sectionedit201&quot;&gt;&lt;a name=&quot;setters&quot; id=&quot;setters&quot;&gt;Setters&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The following setters must be available via ”&lt;em&gt;ExternalInferface&lt;/em&gt;”. It´s vital that all methods get a prefix like “api_” or something to avoid issues in some browsers. E.g. ”&lt;em&gt;addListener&lt;/em&gt;” should become “api_&lt;em&gt;addListener&lt;/em&gt;”. None of the methods should return any value as all interactions (except &lt;em&gt;addListener&lt;/em&gt; and &lt;em&gt;removeListeners&lt;/em&gt;)  must result in at least one &lt;em&gt;event&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;addlistener_eventstring_javascript_call_to_triggerstring&quot; id=&quot;addlistener_eventstring_javascript_call_to_triggerstring&quot;&gt;addListener(&amp;lt;Event:String&amp;gt;, &amp;lt;Javascript Call to trigger:String&amp;gt;&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Ads a Javascript call to the event given. E.g.:  obj.api_addlistener(“volume”, “JSvolumeListener”);
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;removelisteners&quot; id=&quot;removelisteners&quot;&gt;removeListeners()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
A method which removes all listeners added via the “addListener” method. An optional parameter which specifies the very special event to be removed is cool but not necessary.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;seek_second_to_seek_forinteger&quot; id=&quot;seek_second_to_seek_forinteger&quot;&gt;seek(&amp;lt;second to seek for:Integer&amp;gt;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Force the player to set the playhead to a given position. If the requested position is out of the buffered range jump to the maximum available position.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;volume_volumefloat&quot; id=&quot;volume_volumefloat&quot;&gt;volume(&amp;lt;volume:Float&amp;gt;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
A value between 0 and 1 where 0 sets the volume, well, to zero (or muted) and 1 sets the player to full throttle.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;pause&quot; id=&quot;pause&quot;&gt;pause()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Pauses the playback.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;play&quot; id=&quot;play&quot;&gt;play()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Resumes / Starts playback.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;scale_widthinteger_heightinteger_xinteger_yinteger&quot; id=&quot;scale_widthinteger_heightinteger_xinteger_yinteger&quot;&gt;scale(&amp;lt;width:Integer&amp;gt;, &amp;lt;height:Integer&amp;gt;, &amp;lt;x:Integer&amp;gt;, &amp;lt;y:integer&amp;gt;)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If the Flash component doesn´t listen to “stage” events and / or automatically scales the media to the maximum stage you must allow scaling through this method where the given parameters indicate the required dimensions of the video (which may be greater than the current stage) and the x,y offset to place the video in relation to the upper left corner of the movie (which may become &amp;lt;0 each). 
&lt;/p&gt;

&lt;p&gt;
Its recommended to implement this scaling mechanism right into the Flash component and allow two different types of scaling set via flashvar params: “aspectratio” and “fill”
&lt;/p&gt;

&lt;p&gt;
“fill” scales the video in a way that the whole stage without changing the aspect ratio which will cause a cut image but a completely filled stage.
&lt;/p&gt;

&lt;p&gt;
“aspectratio” scales the video in a way that the whole video is shown while using the maximum available stage. This may result in black areas next to or over and below the video image.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT201 SECTION &quot;Setters&quot; [69-2268] --&gt;
&lt;h3 class=&quot;sectionedit202&quot;&gt;&lt;a name=&quot;events&quot; id=&quot;events&quot;&gt;Events&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Each event must trigger one (and only one) matching Javascript call set via “addListener”. Some events must provide parameters as described below.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;timeupdate_duration_float_position_float&quot; id=&quot;timeupdate_duration_float_position_float&quot;&gt;timeupdate( {duration(Float), position(Float)} )&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered on every single change of playhead´s position. Shouldn´t be triggered more than twice in a second to avoid Flash´s “externalInterface”-flood-protection. 
&lt;/p&gt;

&lt;p&gt;
Must send and object with two properties: duration and position.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;duration&lt;/em&gt; indicates the duration of the complete media element in seconds.
&lt;em&gt;position&lt;/em&gt; indicates the playhead´s current position.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;progress_total_integer_loaded_integer&quot; id=&quot;progress_total_integer_loaded_integer&quot;&gt;progress( {total(integer), loaded(integer)} )&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the buffer got filled a little more. Shouldn´t be triggered more than twice in a second to avoid Flash´s “externalInterface”-flood-protection. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;total&lt;/strong&gt; indicates the total amount of bytes to be loaded while:
&lt;strong&gt;loaded&lt;/strong&gt; indicates how much of the current media has already been buffered (in bytes)
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;meta_videowidth_integer_videohight_integer&quot; id=&quot;meta_videowidth_integer_videohight_integer&quot;&gt;meta({videoWidth(integer), videoHight(integer))&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Optionally triggered once the component received META data from the currently selected media. Should at least contain the real video dimensions then.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;start&quot; id=&quot;start&quot;&gt;start()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered once the component was able to successfully establish a connection to the media and began playback (not resuming).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;error_codeerror_code&quot; id=&quot;error_codeerror_code&quot;&gt;error({code:&amp;lt;Error Code&amp;gt;})&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;play1&quot; id=&quot;play1&quot;&gt;play()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the component begins or resumes playback as the result of a “play”-method call NOT due to buffering.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;pause1&quot; id=&quot;pause1&quot;&gt;pause()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the component pauses playback as the result of a “play”-method call / user interaction NOT due to buffering.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;ended&quot; id=&quot;ended&quot;&gt;ended()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the current media has been played back completely.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;volumechange_volumelautstaerke_1_voll_0_mute_05_halb_usw&quot; id=&quot;volumechange_volumelautstaerke_1_voll_0_mute_05_halb_usw&quot;&gt;volumechange({volume:&amp;lt;Lautstärke 1=Voll, 0=Mute, 0.5=Halb usw.})&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered whenever the volume changed either as the result a user-interaction, method call or any other event.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;mute_optional&quot; id=&quot;mute_optional&quot;&gt;mute() (optional)&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered once the player got muted.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;buffering&quot; id=&quot;buffering&quot;&gt;buffering()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered once the component began to buffer content.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;notbuffering&quot; id=&quot;notbuffering&quot;&gt;notbuffering()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Triggered once the component stopped buffering OR &lt;strong&gt;has buffered enough content to continue playback&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;scaled&quot; id=&quot;scaled&quot;&gt;scaled()&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The video image got scaled to fit the screen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT202 SECTION &quot;Events&quot; [2269-] --&gt;</description>
            <author>operator</author>
            <pubDate>Mon, 16 Jan 2012 18:29:36 +0200</pubDate>
        </item>
        <item>
            <title>Building Projekktor from Source - [General] </title>
            <link>http://www.projekktor.com/docs/building?rev=1323953579&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit203&quot;&gt;&lt;a name=&quot;building_projekktor_from_source&quot; id=&quot;building_projekktor_from_source&quot;&gt;Building Projekktor from Source&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT203 SECTION &quot;Building Projekktor from Source&quot; [1-47] --&gt;
&lt;h3 class=&quot;sectionedit204&quot;&gt;&lt;a name=&quot;general&quot; id=&quot;general&quot;&gt;General&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Once you downloaded the player´s source you will find the script separated into multiple files. 
In order to get the un-compressed and un-merged Javascript running you need to include them one
by one to your development page´s header or merge them into one file. 
&lt;/p&gt;

&lt;p&gt;
Including / merging ALL files will fail. Also be aware that &lt;strong&gt;projekktor.js MUST BE INCLUDED FIRST&lt;/strong&gt; - after jQuery of course.
In this section you´ll learn  what to take care of.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT204 SECTION &quot;General&quot; [48-514] --&gt;
&lt;h3 class=&quot;sectionedit205&quot;&gt;&lt;a name=&quot;directory_structure&quot; id=&quot;directory_structure&quot;&gt;Directory Structure&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The /js path of the repository holds four sub-directories:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; jQuery - Includes one or more incarnations of jQuery for testing purposes.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; main - Holds the player´s core controller and models and basic tools.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; plugins - Holds (not so) optional plugins&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; parsers - Some custom reel parser functions needed to convert incoming feed into the Projekktor playlist format. (coming up)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT205 SECTION &quot;Directory Structure&quot; [515-937] --&gt;
&lt;h3 class=&quot;sectionedit206&quot;&gt;&lt;a name=&quot;the_controller_and_tools&quot; id=&quot;the_controller_and_tools&quot;&gt;The Controller and Tools&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor´s controller is generated out of all /js/main/projekktor.*.js files. 
Each of the following files is strictly obligatory. It´s vital to load projekktor.js first.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.js - The player´s controller itself.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.config.js - The default configuration object with all available config parameters.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.utils.js - A set of more or less useful utility-functions used within the player.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;projekktor.plugininterface.js - A basic plugin-prototype all plugins are extended from.&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT206 SECTION &quot;The Controller and Tools&quot; [938-1507] --&gt;
&lt;h3 class=&quot;sectionedit207&quot;&gt;&lt;a name=&quot;the_models&quot; id=&quot;the_models&quot;&gt;The Models&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The player models handle the content-playout itself. Some of them are obligatory, some are optional and some
will replace an other one depending on their setup.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;player.js - The model prototype - obligatory&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;player.NA.js - “Invalid File” dummdy model - obligatory&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.playlist.js - Allows to load a playlist from within a playlist - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.audio.video.js - Native audio / video support - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.audio.video.flash.js - Flash audio / video support featuring Jarisplayer - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.jwflash.js - Flash audio / video support featuring JWplayer - replaces “player.audio.video.flash.js” - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.youtube.js - Youtube &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; support - optional&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; player.image.html.js - Displays images and &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; pages as regular content - optional&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT207 SECTION &quot;The Models&quot; [1508-2324] --&gt;
&lt;h3 class=&quot;sectionedit208&quot;&gt;&lt;a name=&quot;the_default_plugins&quot; id=&quot;the_default_plugins&quot;&gt;The Default Plugins&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; projekktor.display.js - holds the video / poster / image screen as well as the start button, the buffer icon and the logo. Not including this will make an extremely boring video player.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; projekktor.controlbar.js - the custom control bar&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT208 SECTION &quot;The Default Plugins&quot; [2325-2603] --&gt;
&lt;h3 class=&quot;sectionedit209&quot;&gt;&lt;a name=&quot;the_parsers&quot; id=&quot;the_parsers&quot;&gt;The Parsers&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
(coming up)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT209 SECTION &quot;The Parsers&quot; [2604-] --&gt;</description>
            <author>operator</author>
            <pubDate>Thu, 15 Dec 2011 13:52:59 +0200</pubDate>
        </item>
        <item>
            <title>Using Playlists - [Asynchronously loaded Playlist Feeds] </title>
            <link>http://www.projekktor.com/docs/playlists?rev=1323865815&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit210&quot;&gt;&lt;a name=&quot;using_playlists&quot; id=&quot;using_playlists&quot;&gt;Using Playlists&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;This doc applies to V0.8.11 or higher
&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT210 SECTION &quot;Using Playlists&quot; [1-93] --&gt;
&lt;h3 class=&quot;sectionedit211&quot;&gt;&lt;a name=&quot;general_for_developers&quot; id=&quot;general_for_developers&quot;&gt;General (for developers)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor has a built in playlist support. You may want to ignore this and - if required - do the all the schedule handling via the &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt;. That´s OK and the possibilities to handle this are legion. Basically its all about fetching the “COMPLETED” state of the playback component and re-instantiate a new Projekktor with new media URLs afterwards. This is common practise (with other products) and will work fine. However you may find Projekktor itself a bit bloated then because you will not need about two-thirds of its functionality.
&lt;/p&gt;

&lt;p&gt;
As such it works best to use the player as central data handler and - if necessary - write plugins or wrappers to do the custom stuff. What ever you do, may the force be with you.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT211 SECTION &quot;General (for developers)&quot; [94-851] --&gt;
&lt;h3 class=&quot;sectionedit212&quot;&gt;&lt;a name=&quot;general_for_webmasters&quot; id=&quot;general_for_webmasters&quot;&gt;General (for webmasters)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
In fact you have three options to pump schedule data into the player core:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; via the config object&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; via javascript &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; calls&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; via asynchronously loaded &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; or JSON feeds&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
It is hard to make a recommendation which option works best since all three are the result of daily practice. If you just want to apply a pre- or post- roll ad the first option would work best because it keeps fragmentation of your code and mark-up low. On the other hand using feeds is the perfect way to go for video-focused sites with only a few central players (e.g. webTV). So it´s all up to you.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT212 SECTION &quot;General (for webmasters)&quot; [852-1472] --&gt;
&lt;h3 class=&quot;sectionedit213&quot;&gt;&lt;a name=&quot;projekktor_playlist_format&quot; id=&quot;projekktor_playlist_format&quot;&gt;Projekktor Playlist Format&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A Projekktor playlist is an array holding multiple objects where each object configures a single media item in the matter of its location (&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;), type and optional item specific player-configuration.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[
  {
     // minimum 
     0:{src:&amp;#039;item_one_format_one.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;}     
  },
  {
     // one content, multiple formats
     0:{src:&amp;#039;item_two_format_one.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;},
     1:{src:&amp;#039;item_two_format_two.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;}
  },
  {
     // one content, multiple formats, item specific config
     0:{src:&amp;#039;item_three_format_one.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;},
     1:{src:&amp;#039;item_three_format_two.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;},
     3:{src:&amp;#039;item_three_format_three.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;},
     4:{src:&amp;#039;item_three_format_four.ext&amp;#039;, type: &amp;#039;video/...&amp;#039;},          
     config: {
        option1: value1,
        option2: value2
     }
     
]          &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT213 SECTION &quot;Projekktor Playlist Format&quot; [1473-2392] --&gt;
&lt;h3 class=&quot;sectionedit214&quot;&gt;&lt;a name=&quot;basic_playlist_schedule_setup&quot; id=&quot;basic_playlist_schedule_setup&quot;&gt;Basic Playlist / Schedule Setup&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
As you might already know the player is instantiated this way (btw: in case you do not, &lt;a href=&quot;http://www.projekktor.com/docs/api#instantiation&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;learn more here&lt;/a&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;div id=&amp;quot;player_a&amp;quot; class=&amp;quot;mybasicplayerstyle&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    projekktor(&amp;#039;#player_a&amp;#039;, {});
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Parameter one is a &lt;a href=&quot;http://api.jquery.com/category/selectors/&quot; class=&quot;urlextern&quot; title=&quot;http://api.jquery.com/category/selectors/&quot;&gt;jQuery DOM selector&lt;/a&gt; and indicates the destination &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; container(s), the second parameter is for additional configuration. E.g. in order to play a single content in two formats, having controls enabled and set the volume to 50% you hack this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;projekktor(&amp;#039;#player_a&amp;#039;, {
    controls: true,
    volume: 0.5,
    playlist: [
       {
          0:{src:&amp;#039;myvideo.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;myvideo.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;}
       }
    ]
});&lt;/pre&gt;

&lt;p&gt;
Consistently it is possible to schedule multiple videos by extending the &lt;em&gt;playlist&lt;/em&gt; array. Let ´s add a kinda preroll-ad:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;projekktor(&amp;#039;#player_a&amp;#039;, {
    controls: true,
    volume: 0.5,
    playlist: [
       {
          0:{src:&amp;#039;advertisement.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;advertisement.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;}
       },
       {
          0:{src:&amp;#039;myvideo.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;myvideo.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;}
       }       
    ]
});&lt;/pre&gt;

&lt;p&gt;
You now have two videos in schedule which are played back one after one in a row. While this is quite cool it is not perfect yet. In general ads are enervating and users have tendencies to skip them when ever possible. To avoid this you may want to make use of Projekktor´s item-wise re-configuration feature.
&lt;/p&gt;

&lt;p&gt;
In order to prevent skipping and pausing of the first clip you can set &lt;em&gt;config.disablePause&lt;/em&gt; and &lt;em&gt;config.disallowSkip&lt;/em&gt; to &lt;em&gt;TRUE&lt;/em&gt; like that:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;projekktor(&amp;#039;#player_a&amp;#039;, {
    controls: true,
    volume: 0.5,
    playlist: [
       {
          0:{src:&amp;#039;advertisement.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;advertisement.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;},
          config: {
             disablePause: true,
             disallowSkip: true
          }
       },
       {
          0:{src:&amp;#039;myvideo.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;myvideo.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;}
       }       
    ]
});&lt;/pre&gt;

&lt;p&gt;
Et voila: Perfect constraint! 
&lt;/p&gt;

&lt;p&gt;
Note that configuration options above “playlist” define the defaults for all scheduled items while config options on item level affect only the respective item.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT214 SECTION &quot;Basic Playlist / Schedule Setup&quot; [2393-4857] --&gt;
&lt;h3 class=&quot;sectionedit215&quot;&gt;&lt;a name=&quot;dynamic_scheduling_via_javascript_api&quot; id=&quot;dynamic_scheduling_via_javascript_api&quot;&gt;Dynamic Scheduling via Javascript API&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Assumed you set a player up and running this way (&lt;a href=&quot;http://www.projekktor.com/docs/api#instantiation&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;learn more here&lt;/a&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;div id=&amp;quot;player_a&amp;quot; class=&amp;quot;mybasicplayerstyle&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
projekktor(&amp;#039;#player_a&amp;#039;, {
    controls: true,
    volume: 0.5
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
It is possible to set (or overwrite) its schedule by using the  &lt;a href=&quot;http://www.projekktor.com/docs/api#playersetfile_datamixed_playlistboolean_void&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;setFile&lt;/a&gt; or  &lt;a href=&quot;http://www.projekktor.com/docs/api#playersetfile_datamixed_playlistboolean_void&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;setItem&lt;/a&gt; method. Below we define a new playlist and apply it to an already instantiated player with the ID “player_a”:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;var playlist = [
       {
          0:{src:&amp;#039;advertisement.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;advertisement.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;},
          config: {
             disablePause: true,
             disallowSkip: true
          }
       },
       {
          0:{src:&amp;#039;myvideo.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;myvideo.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;}
       }   
];

projekktor(&amp;#039;player_a&amp;#039;).setFile(playlist);&lt;/pre&gt;

&lt;p&gt;
The player instance will fire the “scheduled” event once the setFile-call has been processed. Note that ”&lt;a href=&quot;http://www.projekktor.com/docs/api#playersetfile_datamixed_playlistboolean_void&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;setFile&lt;/a&gt;” overwrites all previously set items - which is close to a full reset. If you want to manipulate, add or remove single items without discarding the current schedule you better use the  &lt;a href=&quot;http://www.projekktor.com/docs/api#playersetitem_datamixed_indexnumber_replaceboolean_void&quot; class=&quot;wikilink1&quot; title=&quot;api&quot;&gt;setItem&lt;/a&gt; method.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT215 SECTION &quot;Dynamic Scheduling via Javascript API&quot; [4858-6346] --&gt;
&lt;h3 class=&quot;sectionedit216&quot;&gt;&lt;a name=&quot;asynchronously_loaded_playlist_feeds&quot; id=&quot;asynchronously_loaded_playlist_feeds&quot;&gt;Asynchronously loaded Playlist Feeds&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Projekktor can eat &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; and JSON formatted playlist feeds either of a proprietary format or any other format by applying custom filter functions. If you´re planing a project from scratch and want to use the Projekktor we highly recommend to use JSON feeds in order to save overhead and performance.
&lt;/p&gt;

&lt;p&gt;
Feeds are applied like ordinary media files just by a given &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; and a &lt;em&gt;type&lt;/em&gt; set either to “text/json” to load a JSON formatted feed or “text/xml” to load - guess what - a feed which is handled as &lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt;. As such the following example could do the job:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;div id=&amp;quot;player_g&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
projekktor(&amp;#039;#player_g&amp;#039;, {
    file: [{src:&amp;#039;playlistserver.php&amp;#039;, type: &amp;#039;text/json&amp;#039;}]
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
The following will work also:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;video id=&amp;quot;player_g&amp;quot; width=&amp;quot;640&amp;quot; height=&amp;quot;480&amp;quot; controls&amp;gt;
   &amp;lt;source src=&amp;quot;playlistserver.php&amp;quot; type=&amp;quot;text/json&amp;quot;/&amp;gt;
&amp;lt;/video&amp;gt;

&amp;lt;script&amp;gt;
projekktor(&amp;#039;#player_g&amp;#039;, {});
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&lt;div class=&quot;noteimportant&quot;&gt;
Make sure that your feeds are loaded from the same domain as the page with the player itself loads from. Otherwise security restrictions apply and you get an error. If you need to load data from an external domain you must use a simple proxy on your server which passes the feed through. 

&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
During the load process the player will go to IDLE state and will refuse any user interaction or &lt;acronym title=&quot;JavaScript&quot;&gt;JS&lt;/acronym&gt; call until all feed data has been processed and all plugins reinitialized. 
&lt;/p&gt;

&lt;p&gt;
Loading a (new) feed will ALWAYS overwrite all scheduled items so far. This is important to know because it is possible to “chain” playlists. Once the player reaches an item of type “text/json” or “text/xml” it will load the feed from the given &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; and continues playback with item #1 of the new scheduled items.
&lt;/p&gt;

&lt;p&gt;
The following example would play back the advertisement.*-video first and load the playlist.xml feed afterwards:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;projekktor(&amp;#039;#player_a&amp;#039;, {
    controls: true,
    volume: 0.5,
    playlist: [
       {
          0:{src:&amp;#039;advertisement.mp4&amp;#039;, type: &amp;#039;video/mp4&amp;#039;},
          1:{src:&amp;#039;advertisement.ogv&amp;#039;, type: &amp;#039;video/ogv&amp;#039;}
       },
       {
          0:{src:&amp;#039;playlist.xml&amp;#039;, type: &amp;#039;text/xml&amp;#039;}
       }       
    ]
});&lt;/pre&gt;

&lt;p&gt;
&lt;div class=&quot;notetip&quot;&gt;Icing on the cake: text/xml and text/json types are “always functional” fallback options. Read on:
&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
You can set up extremely complex format fallback scenarios by providing feeds as alternate media sources. Since feeds are understood by all browsers even setting like this will work:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;projekktor(&amp;#039;#player_a&amp;#039;, {
    controls: true,
    volume: 0.5,
    playlist: [
       {
          0:{src:&amp;#039;advertisement.webm&amp;#039;, type: &amp;#039;video/webm&amp;#039;},
          1:{src:&amp;#039;alternate-playist.xml&amp;#039;, type: &amp;#039;text/xml&amp;#039;}
       }       
    ]
});&lt;/pre&gt;

&lt;p&gt;
In this example every client which is not able to play WEBM will load the “alternate-playist.xml” feed.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT216 SECTION &quot;Asynchronously loaded Playlist Feeds&quot; [6347-] --&gt;</description>
            <author>operator</author>
            <pubDate>Wed, 14 Dec 2011 13:30:15 +0200</pubDate>
        </item>
    </channel>
</rss>

