Author: andre
Date: 2010-03-31 17:14:04 +0200 (Wed, 31 Mar 2010)
New Revision: 41707

Modified:
   openimages/trunk/src/main/webapp/oiplayer/css/images/controls-fullscreen.png
   openimages/trunk/src/main/webapp/oiplayer/css/images/controls-pause.png
   openimages/trunk/src/main/webapp/oiplayer/css/images/controls-play.png
   openimages/trunk/src/main/webapp/oiplayer/css/images/controls-soundoff.png
   openimages/trunk/src/main/webapp/oiplayer/css/images/controls-soundon.png
   openimages/trunk/src/main/webapp/oiplayer/css/images/slider11-pos.png
   openimages/trunk/src/main/webapp/oiplayer/css/oiplayer.css
   openimages/trunk/src/main/webapp/oiplayer/index.html
   openimages/trunk/src/main/webapp/oiplayer/js/jquery.oiplayer.js
Log:
css controls, made white top default, tested for iphone

Modified: 
openimages/trunk/src/main/webapp/oiplayer/css/images/controls-fullscreen.png
===================================================================
(Binary files differ)

Modified: 
openimages/trunk/src/main/webapp/oiplayer/css/images/controls-pause.png
===================================================================
(Binary files differ)

Modified: openimages/trunk/src/main/webapp/oiplayer/css/images/controls-play.png
===================================================================
(Binary files differ)

Modified: 
openimages/trunk/src/main/webapp/oiplayer/css/images/controls-soundoff.png
===================================================================
(Binary files differ)

Modified: 
openimages/trunk/src/main/webapp/oiplayer/css/images/controls-soundon.png
===================================================================
(Binary files differ)

Modified: openimages/trunk/src/main/webapp/oiplayer/css/images/slider11-pos.png
===================================================================
(Binary files differ)

Modified: openimages/trunk/src/main/webapp/oiplayer/css/oiplayer.css
===================================================================
--- openimages/trunk/src/main/webapp/oiplayer/css/oiplayer.css  2010-03-31 
12:53:33 UTC (rev 41706)
+++ openimages/trunk/src/main/webapp/oiplayer/css/oiplayer.css  2010-03-31 
15:14:04 UTC (rev 41707)
@@ -14,52 +14,48 @@
 
 div.oiplayer
 {
-       /*width: 320px;*/
        position: relative;
+       /*height: 270px;*/  /* player 240 + controls 25 + margin 5 (set in 
jquery.oiplayer.js) */
 }
 
-div.oiplayer > div.player,
-div.oiplayer > div.player > object
+div.oiplayer > div.player
 {
-       margin: 0;
-       padding: 0;
-}
-div.oiplayer.audio > div.player
-{
+       z-index: 9;
        position: absolute;
        top: 0;
        left: 0;
-       z-index: 9;
+       /*height: 240px;*/        /* needed for audio controls at bottom (set 
in jquery.oiplayer.js) */
 }
-div.oiplayer.audio > div.player > audio
+
+div.oiplayer > div.controls
 {
+       height: 25px;
+       margin: 0;
+       z-index: 19;
        position: absolute;
        bottom: 0;
        left: 0;
-       width: 100%;
 }
 
-div.oiplayer > div.controls
+div.oiplayer.audio > div.player > audio
 {
-       height: 24px;
-       margin: 4px 0 0 0;
+       margin: 0;
+       padding: 0;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       width: 100%;        /* not sure about this */
 }
 
-div.oiplayer > div.controls.top
+div.oiplayer > .preview
 {
-       position: absolute;
-       bottom: 0;
-       z-index: 19;
-       background-image: url(images/controls-blackbg.png);
-       background-repeat: repeat;
-       height: 30px;
-       padding-top: 4px;
-       margin: 0;
+    position: absolute;
+       top: 0;
+       left: 0;
+       z-index: 11;
+       cursor: pointer;
 }
-div.oiplayer > div.controls.top.white { background-image: 
url(images/controls-whitie.png); }
-
-div.oiplayer > .preview { cursor: pointer; }
-div.oiplayer > img.preview { display: block; }
+div.oiplayer > img.preview {  }
 div.oiplayer > div.preview.video { background: url(images/preview_video.png) 
left top repeat; }
 div.oiplayer > div.preview.audio { background: url(images/preview_audio.png) 
left top repeat; }
 
@@ -73,29 +69,12 @@
 */
 }
 
-div.oiplayer > div.inavailable
-{
-       font-weight: bold;
-       height: 240px;
-       font-size: 1.1em;
-       background-image: url(images/preview_video.png);
-}
-
-div.inavailable p
-{
-       width: 80%;
-       padding-top: 100px;
-       text-align: center;
-       font-size: 1.4em;
-       margin: 0 auto;
-}
-
 /* controls */
 div.oiplayer ul.controls
 {
        margin: 0;
        padding: 0;
-       height: 25px;
+       height: 23px;
        list-style: none;
        display: inline;
        overflow: hidden;
@@ -111,15 +90,13 @@
 
 div.oiplayer ul.controls a
 {
-       padding: 25px 0 0 0;
+       padding: 23px 0 0 0;
        overflow: hidden;
        height: 0 !important;
-    height /**/: 25px;  /* for IE5/Win */
+    height /**/: 23px;  /* for IE5/Win */
 }
 
-div.oiplayer div.controls ul.controls a:hover,
-div.oiplayer div.controls.top.white ul.controls a:hover { background-position: 
0 -25px; }
-div.oiplayer div.controls.top ul.controls a:hover { background-position: 0 
-49px; }
+div.oiplayer ul.controls a:hover { background-position: 0 -25px; }
 
 div.oiplayer ul.controls li.play a
 {
@@ -183,36 +160,29 @@
        margin-left: 7px;
 }
 
-div.oiplayer ul.controls li.position
+div.oiplayer ul.controls li.position,
+div.oiplayer ul.controls li.timeleft
 {
        font-family: Monaco, Courier, monospaced;
        font-size: 12px;
        line-height: 26px;
        color: #555;
-       margin-left: 7px;
+       margin-left: 0;
        float: left;
        width: 63px;
        text-align: center;
 }
-div.oiplayer div.top ul.controls li.position { color: #efefef; }
-div.oiplayer div.top.white ul.controls li.position { color: #555; }
 
-
-/* ### jquery-ui and slider ### */
-div.oiplayer ul.controls li.slider
+/* ### slider, jquery-ui etc. ### */
+div.oiplayer div.controls li.slider
 {
        float: left;
        margin-left: 7px;
-       background: url(images/slider11-left.png) left -25px no-repeat;
-       padding-left: 10px;
+       background: url(images/slider11-left.png) left -50px no-repeat;
+       padding-left: 9px;
 }
-div.oiplayer ul.controls li.slider.changed { background: 
url(images/slider11-left.png) left -50px no-repeat; }
-div.oiplayer div.top.white ul.controls li.slider.changed { background: 
url(images/slider11-left.png) left -50px no-repeat; }
-div.oiplayer div.top ul.controls li.slider { background: 
url(images/slider11-left.png) left top no-repeat; }
-div.oiplayer div.top.white ul.controls li.slider { background: 
url(images/slider11-left.png) left -50px no-repeat; }
-div.oiplayer div.top.white ul.controls li.slider { background: 
url(images/slider11-left.png) left -25px no-repeat; }
 
-div.oiplayer ul.controls li.slider div.slider div.ui-slider
+div.oiplayer div.controls li.slider div.slider div.ui-slider
 {
        border: 0;
        width: 100%;
@@ -220,44 +190,70 @@
        height: 25px;
 }
 
-div.oiplayer .ui-slider { position: relative; }
+div.oiplayer div.controls .ui-slider { position: relative; }
+div.oiplayer div.controls .ui-slider-horizontal .ui-slider-handle { top: 0; }
 
-div.oiplayer .ui-slider-horizontal .ui-slider-handle { top: 0; }
-
-div.oiplayer .ui-slider .ui-slider-handle
+div.oiplayer div.controls .ui-slider .ui-slider-handle
 {
        cursor: pointer;
        height: 25px;
        position: absolute;
-       width: 13px;
+       width: 14px;
        z-index: 2;
 }
+div.oiplayer div.controls a.ui-slider-handle:hover { background-position: 0 
-100px; }
 
-div.oiplayer li.slider div.ui-slider-range
+div.oiplayer div.controls li.slider div.ui-slider-range
 {
        height: 25px;
        background: url(images/slider11-long.png) right -50px no-repeat;
 }
-div.oiplayer div.top li.slider div.ui-slider-range
+
+div.oiplayer div.controls .ui-state-default, 
+div.oiplayer .ui-widget-content .ui-state-default
 {
-       background: url(images/slider11-long.png) right top no-repeat;
-}
-div.oiplayer div.top.white li.slider div.ui-slider-range
-{
-       background: url(images/slider11-long.png) right -50px no-repeat;
-}
-div.oiplayer .ui-state-default, div.oiplayer .ui-widget-content 
.ui-state-default
-{
        border: 0;
        background-color: transparent;
        background: url(images/slider11-pos.png) left -75px no-repeat;
-       margin-left: -10px;
+       margin-left: -9px;
 }
-div.oiplayer div.controls ul.controls a.ui-slider-handle:hover { 
background-position: 0 -100px; }
-div.oiplayer div.controls.top ul.controls a.ui-slider-handle:hover { 
background-position: 0 -100px; }
+div.oiplayer div.controls li.changed a.ui-slider-handle:hover { 
background-position: 0 -100px; }
 
-.ui-state-default:focus, .ui-widget-content .ui-state-default:focus { outline: 
none; } 
+div.oiplayer div.controls li.changed .ui-state-default, 
+div.oiplayer div.controls li.changed .ui-widget-content .ui-state-default { 
background: url(images/slider11-pos.png) left -75px no-repeat; }
 
+div.oiplayer div.controls .ui-state-default:focus, 
+div.oiplayer div.controls .ui-widget-content .ui-state-default:focus { 
outline: none; } 
+
+/* top */
+div.oiplayer > div.controls.top
+{
+       background-image: url(images/controls-whitie.png);
+       background-repeat: repeat;
+}
+
+/* white */
+div.oiplayer > div.controls.white {    background-image: 
url(images/controls-whitie.png); }
+
+/* dark (only possible with top really) */
+div.oiplayer div.controls.dark { background-image: 
url(images/controls-blackbg.png); }
+div.oiplayer div.controls.dark li.position { color: #efefef; }
+
+div.oiplayer div.controls.dark a { background-position: 0 -50px; }
+div.oiplayer div.controls.dark a:hover { background-position: 0 0; }
+
+div.oiplayer div.controls.dark li.slider { background: 
url(images/slider11-left.png) left -50px no-repeat; }
+div.oiplayer div.controls.dark li.slider div.slider div.ui-slider { 
background: url(images/slider11-long.png) right -0px no-repeat; }
+
+div.oiplayer div.controls.dark li.slider div.ui-slider-range { background: 
url(images/slider11-long.png) right -50px no-repeat; }
+
+div.oiplayer div.controls.dark a.ui-slider-handle { background: 
url(images/slider11-pos.png) left -75px no-repeat; }
+div.oiplayer div.controls.dark a.ui-slider-handle:hover { background-position: 
0 -100px; }
+div.oiplayer div.controls.dark li.changed a.ui-slider-handle:hover { 
background-position: 0 -100px; }
+div.oiplayer div.controls.dark li.changed .ui-state-default,
+div.oiplayer div.controls.dark li.changed .ui-widget-content .ui-state-default 
{ background-position: left -75px; }
+
+
 /* fullscreen */
 div.oiplayer.fullscreen
 {
@@ -274,6 +270,20 @@
 div.oiplayer.fullscreen > div.player { margin: 0 auto; }
 div.oiplayer.fullscreen > div.controls { margin: 0 auto; }
 
+/* inavailable / no compatible sources */
+div.oiplayer.video.inavailable { background: url(images/preview_video.png) 
left top repeat; }
+div.oiplayer.audio.inavailable { background: url(images/preview_audio.png) 
left top repeat; }
+div.oiplayer.inavailable div.player { display: none; }
+div.oiplayer.inavailable p
+{
+       width: 80%;
+       text-align: center;
+       font-size: 1.4em;
+       margin: 0 auto;
+       padding-top: 32%;
+       font-weight: bold;
+}
+
 /* ### example html ### */
 body.oiplayer-example
 {

Modified: openimages/trunk/src/main/webapp/oiplayer/index.html
===================================================================
--- openimages/trunk/src/main/webapp/oiplayer/index.html        2010-03-31 
12:53:33 UTC (rev 41706)
+++ openimages/trunk/src/main/webapp/oiplayer/index.html        2010-03-31 
15:14:04 UTC (rev 41707)
@@ -53,6 +53,7 @@
       Slider controllable with arrow keys 
       (requires <a 
href="http://jqueryui.com/demos/slider/";>jquery.ui.slider.js</a>)
     </li>
+    <li>iPhone compatible (without controls).
   </ul>
   <h3>Supported browsers</h3>
   <ul>

Modified: openimages/trunk/src/main/webapp/oiplayer/js/jquery.oiplayer.js
===================================================================
--- openimages/trunk/src/main/webapp/oiplayer/js/jquery.oiplayer.js     
2010-03-31 12:53:33 UTC (rev 41706)
+++ openimages/trunk/src/main/webapp/oiplayer/js/jquery.oiplayer.js     
2010-03-31 15:14:04 UTC (rev 41707)
@@ -14,7 +14,8 @@
  * MSIE bug (!) : currently I could find no way to makes this plugin behave 
correctly in MSIE on multiple
  * mediatags in one go. You will have to wrap each mediatag in a div or some 
other element and feed it
  * to the plugin.
- *
+ * 
+ * Uses these parameters and/or the audio/video tag attributes like height, 
width, poster etc.
  * @params:
  *   id - id of the element that contains the media tag
  *   config - configuration parameters
@@ -26,7 +27,7 @@
                       Value 'top' will add a css class of that name and will 
hide/show controls on top of the player window.
                       Add a css class of your own to edit the appearance of 
the controls (f.e. 'top dark').
  *
- * @changes: added seek, fullscreen and mute, more control over appearance of 
controls
+ * @changes: iphone compatibility
  * @version: '$Id$'
 */
 
@@ -53,34 +54,39 @@
             $(mt).wrap('<div class="oiplayer"><div 
class="player"></div></div>');
             var div = $(mt).closest('div.oiplayer');
             var player = createPlayer(mt, sources, config);
-            
$(div).width(player.width).height(player.height).addClass(player.type);
+            $(div).addClass(player.type);
             if (player.myname.indexOf('cortado') > -1) {
                 $(div).find('div.player').empty();
                 $(div).find('div.player').append(player.player);
             }
-            $(div).find('div.player').hide();
             
             var poster = createPoster(div, player);
             $(div).prepend(poster);
             
-            if ($.browser.msie) { 
+            //if ($.browser.msie) { 
                 //$('p.oiplayer-warn').hide(); // MSIE places stuff partly 
outside mediatag
-            }
+            //}
             
-            if (config.controls) {
+            $(div).width(player.width).height(player.height);
+            if (config.controls && player.url != undefined) {
                 $(div).append(createControls());
-                if (config.controls != true) {
-                    
$(div).find('div.controls').width(player.width).addClass(config.controls);
-                    $(div).find('li.slider').width(player.width - 
182).addClass(config.controls);
+                $(div).find('div.controls').width(player.width);
+                $(div).find('li.slider').width(player.width - 182);
+                if (config.controls != true) {  // append classes
+                    $(div).find('div.controls').addClass(config.controls);
                     if (config.controls.indexOf('top') > -1) {
-                        $(div).find('div.controls').addClass('top');
                         $(div).find('div.controls').hide();
-                        $(div).height(player.height);
                     } else {
-                        //$(div).height(player.height + 25);
+                        $(div).height(player.height + 30);
                     }
+                } else {
+                    $(div).height(player.height + 30);
                 }
             }
+            if (player.url == undefined) {  // no compatible sources to play
+                $(div).addClass('inavailable');
+                $(div).append('<p>No compatible source found to play.</p>');
+            }
             //$.oiplayer.msg(player, player.info);
             players.push(player);
 
@@ -145,7 +151,7 @@
                 if ($(el).find('div.controls').is('.top')) {
                     $(el).hover(
                         function() { 
-                            $(el).find('div.controls').fadeIn(); 
+                            $(el).find('div.controls').fadeIn();
                         },
                         function() {
                             $(el).find('div.controls').fadeOut('slow');
@@ -173,12 +179,13 @@
     function start(player) {
         var div = $.oiplayer.div(player);
         if (player.type == 'video') {
-            $(div).find('.preview').remove();
+            $(div).find('.preview').hide();
         } else {
-            //$(div).find('.preview').css("z-index", "1");
+            $(div).find('.preview').css("z-index", "1");
         }
-        
$(div).find('div.player').show().height(player.height).width(player.width);
+
         player.play();
+        
         if (player.config.controls) {
             var ctrls = $(div).find('ul.controls');
             var timer = $(ctrls).find('li.position');
@@ -199,12 +206,15 @@
         var window_w = $(window).width();
         var window_h = $(window).height();
         if (! $(div).find('div.controls').is('.top')) {
-            window_h = window_h - 35;
+            window_h = window_h - 30;
         }
         var multi_w = window_w / player.owidth;
         var multi_h = window_h / player.oheight;
         var half = 0;
         if (player.width != player.owidth) {
+            var h = player.oheight;
+            if (! $(div).find('div.controls').is('.top')) { h = h + 30; }
+            $(div).width(player.owidth).height(h);
             player.width = player.owidth;
             player.height = player.oheight;
         } else if (multi_h < multi_w) {
@@ -218,7 +228,7 @@
             player.height = Math.round(player.oheight * multi_w);
         }
         
-        $(div).toggleClass('fullscreen').width('100%').height('100%');
+        $(div).toggleClass('fullscreen');
         $(player.player).width(player.width).height(player.height);
         
         if ($(div).is('.fullscreen')) {
@@ -280,6 +290,7 @@
             player = new FlowPlayer();
         } else {
             player = new Player();
+            player.type = "none";
         }
         if (eas.duration != null) {
             player.duration = eas.duration;
@@ -369,10 +380,6 @@
         var aEl = document.createElement("audio");
         if (vEl.canPlayType || aEl.canPlayType) {
             for (var i = 0; i < types.length; i++) {
-                /*
-                 
http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom-navigator-canplaytype
-                 Firefox 3.5 is very strict about this and does not return 
'probably', but does on 'maybe'.
-                */
                 if (vEl.canPlayType( types[i] ) == "probably" || 
aEl.canPlayType( types[i] ) == "probably") {
                     return urls[i]; // this is the best we can do
                 }
@@ -397,15 +404,16 @@
 
     function createPoster(el, player) {
         var src = player.poster;
-        if (!src && player.type == 'audio') { // for audio-tags (no attribute 
poster)
+        if (!src && player.type == 'audio') { // for audio-tags (no attribute 
poster but image inside audio-tag)
             var img = $(el).find('img')[0];
             src = $(img).attr('src');
             $(img).remove();
         }
         if (!src) {
-            return '<div class="preview ' + player.type + '" style="width:' + 
player.width + 'px;height:' + player.height + 'px;"></div>'
+            //return '<div class="preview ' + player.type + '" style="width:' 
+ player.width + 'px;height:' + player.height + 'px;"></div>'
+            return "";
         } else {
-            return '<img  class="preview" src="' + src + '" width="' + 
player.width + '" height="' + player.height + '" alt="click to play" 
title="click to play" />';
+            return '<img class="preview ' + player.type + '" src="' + src + '" 
width="' + player.width + '" height="' + player.height + '" alt="click to play" 
title="click to play" />';
         }
     }
         
@@ -494,7 +502,6 @@
     },
     
     msg: function(player, msg) {
-        //$( $.oiplayer.div(player) ).append('<div class="oiplayerinfo">' + 
msg + '</div>');
         $('<div class="oiplayerinfo"></div>').text(msg).hide().appendTo( 
$.oiplayer.div(player) ).fadeIn();
     },
     
@@ -530,7 +537,9 @@
 function Player() {
     this.myname = "super";
 }
-Player.prototype.init = function(el, url, config) { }
+Player.prototype.init = function(el, url, config) {
+    this._init(el, url, config);
+}
 Player.prototype.mute = function() { }
 Player.prototype.play = function() { }
 Player.prototype.pause = function() { }
@@ -551,7 +560,7 @@
     this.controls = $(this.player).attr('controls');
     if (this.controls == undefined) this.controls = false;
     this.width  = $(this.player).attr('width') > 0 ? 
$(this.player).attr('width') : 320;
-    this.height = $(this.player).attr('height') > 0 ? 
$(this.player).attr('height') : 240;;
+    this.height = $(this.player).attr('height') > 0 ? 
$(this.player).attr('height') : 240;
     this.state = 'init';
     this.pos = 0;
     
@@ -563,7 +572,7 @@
 }
 MediaPlayer.prototype = new Player();
 MediaPlayer.prototype.init = function(el, url, config) {
-    this._init(el, url, config); // just init and pass it along
+    this._init(el, url, config);
     this.url = url;
     if (config.controls) {
         var self = this;

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to