Changeset 61566 in spip-zone


Ignore:
Timestamp:
May 22, 2012, 8:51:37 PM (7 years ago)
Author:
cedric@…
Message:

indentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/player/trunk/javascript/player_enclosure.js

    r54784 r61566  
    11/*
    2         Appelee par le body onload, cette fonction affiche les players mp3/flv et genere les playlistes associees
    3         Auteur : BoOz <booz CHEZ rezo POINT net>
    4         Licence : GNU/GPL
    5 
    6         compatibilite firefox par Vincent Ramos <www-lansargues CHEZ kailaasa POINT net> et erational <http://www.erational.org>
    7 *
    8 * Fonctionne avec jQuery.
    9 * sounmanager2 : http://www.schillmania.com/projects/soundmanager2/
    10 **/
     2 Appelee par le body onload, cette fonction affiche les players mp3/flv et genere les playlistes associees
     3 Auteur : BoOz <booz CHEZ rezo POINT net>
     4 Licence : GNU/GPL
     5
     6 compatibilite firefox par Vincent Ramos <www-lansargues CHEZ kailaasa POINT net> et erational <http://www.erational.org>
     7 *
     8 * Fonctionne avec jQuery.
     9 * sounmanager2 : http://www.schillmania.com/projects/soundmanager2/
     10 **/
    1111
    1212var track_index = 0;
    1313
    14 live_track = 'stop' ;
    15 live_video = 'stop' ;
    16 isVideoPlaying = false ;
    17 videoPause = false ;
    18 isPlaying = false ;
    19      
     14live_track = 'stop';
     15live_video = 'stop';
     16isVideoPlaying = false;
     17videoPause = false;
     18isPlaying = false;
     19
    2020soundManager.consoleOnly = true;
    2121soundManager.debugMode = false;
     
    2525var seljQ = '@';
    2626if (jQuery.fn.jquery>="1.3.0")
    27         seljQ='';
    28 
    29 jQuery(document).ready(function(){
     27        seljQ = '';
     28
     29jQuery(document).ready(function (){
    3030        //lecteur_debug();
    3131        lecteur_multimedia_init();
     
    3838        flvArray = new Array();
    3939        flvTitles = new Array();
    40        
    41         var aff= jQuery("a["+seljQ+"rel*='enclosure']["+seljQ+"href$=mp3]").size();
     40
     41        var aff = jQuery("a["+seljQ+"rel*='enclosure']["+seljQ+"href$=mp3]").size();
    4242
    4343        // lister les mp3 de la page
    4444        jQuery("a["+seljQ+"rel*='enclosure']["+seljQ+"href$=mp3]").each(
    45                 function(i) {   
     45                function (i){
    4646                        // we store mp3 links in an array
    4747                        mp3Array.push(this.href);
     
    5050                        //demarrer le lecteur lors d'un click
    5151                        jQuery(this).click(
    52                      function(e){
    53                          e.preventDefault();
    54                          player_play(i);
    55                          jQuery("#bouton_play").attr('src',player_data.dir + 'skins/blogo/pause.png');         
    56                       }
    57                  );
    58                          
     52                                function (e){
     53                                        e.preventDefault();
     54                                        player_play(i);
     55                                        jQuery("#bouton_play").attr('src', player_data.dir+'skins/blogo/pause.png');
     56                                }
     57                        );
     58
    5959                        // activer le click sur un parent de class "play_"
    60                         if(jQuery(this).parent().attr("class"))
    61                         if(jQuery(this).parent().attr("class").split(" ").contains("play_"))
    62                         jQuery(this).parent().click(
    63                                 function(e){
    64                                         player_play(i);
    65                                         jQuery("#bouton_play").attr('src',player_data.dir + 'skins/blogo/pause.png');
    66                                 }
    67                         );
    68                        
     60                        if (jQuery(this).parent().attr("class"))
     61                                if (jQuery(this).parent().attr("class").split(" ").contains("play_"))
     62                                        jQuery(this).parent().click(
     63                                                function (e){
     64                                                        player_play(i);
     65                                                        jQuery("#bouton_play").attr('src', player_data.dir+'skins/blogo/pause.png');
     66                                                }
     67                                        );
     68
    6969                        // ajouter un bouton "play" devant les liens hors player -
    7070                        //a passer en .ajoute_musicplayer()     
    7171                        //jQuery(this).before('<span class="play_">play</span>&nbsp;');
    72                         jQuery(this).before('<span class="play_"><img src="' + player_data.image_play + '"/></span>&nbsp;');
     72                        jQuery(this).before('<span class="play_"><img src="'+player_data.image_play+'"/></span>&nbsp;');
    7373                }
    7474        );
    75        
     75
    7676        jQuery("a["+seljQ+"rel='video']").each(
    77                 function(i) {
     77                function (i){
    7878                        // we store flv links in an array
    7979                        flvArray.push(this.href);
     
    8282                        //demarrer le lecteur lors d'un click
    8383                        jQuery(this).click(
    84                                 function(e){
     84                                function (e){
    8585                                        e.preventDefault();
    86                                         video_play(i); 
     86                                        video_play(i);
    8787                                        // jQuery("#now_playing").html(jQuery(this).html());               
    88                      }
    89                 );
    90                        
     88                                }
     89                        );
     90
    9191                }
    9292        );
     
    9696        jQuery(".playliste").find("span").remove(); // traiter a par le player
    9797
    98         jQuery(".playliste li").hover(function(){
     98        jQuery(".playliste li").hover(function (){
    9999                jQuery(this).addClass("over");
    100         },function(){
     100        }, function (){
    101101                jQuery(this).removeClass("over");
    102         });     
     102        });
    103103
    104104        // liens mp3 hors player avec bouton   
    105105        // toggle play / pause
    106106        jQuery("span.play_").each(
    107                 function(i) {
     107                function (i){
    108108                        jQuery(this).toggle(
    109                                 function(e){
    110                                         if(live_track !=='stop'){
     109                                function (e){
     110                                        if (live_track!=='stop'){
    111111                                                player_stop();
    112                                         }else{
    113                                                 player_play(i) ;
    114                                                 jQuery(this).html("<img src='" + player_data.image_pause + "'/>").addClass("play_on");
     112                                        } else {
     113                                                player_play(i);
     114                                                jQuery(this).html("<img src='"+player_data.image_pause+"'/>").addClass("play_on");
    115115                                                // i c pas forcemment bon si t'as un player avant le lien cf plus bas
    116                                         }                                               
    117                                 },function(e){
     116                                        }
     117                                }, function (e){
    118118                                        player_stop(); // ou pause ?                         
    119119                                }
     
    123123
    124124        // le bouton play/pause du player
    125         jQuery('#bouton_play').click(function(e){
    126             //console.log(isPlaying);
    127                 if(!isPlaying){
    128                         jQuery(this).attr('src',player_data.dir + 'skins/blogo/pause.png');               
    129                         if(live_track =='stop') {
    130                                 player_play(0) ;
    131                         }else{
     125        jQuery('#bouton_play').click(function (e){
     126                //console.log(isPlaying);
     127                if (!isPlaying){
     128                        jQuery(this).attr('src', player_data.dir+'skins/blogo/pause.png');
     129                        if (live_track=='stop'){
     130                                player_play(0);
     131                        } else {
    132132                                player_togglePause();
    133                         }       
    134                 }else{ 
    135                         jQuery(this).attr('src',player_data.dir + 'skins/blogo/play.png');             
     133                        }
     134                } else {
     135                        jQuery(this).attr('src', player_data.dir+'skins/blogo/play.png');
    136136                        player_togglePause();
    137137                }
     
    139139
    140140        // chopper les coordonnees du clic dans la barre de progression
    141         jQuery("#scrollbar").click(function(e){
    142                 var x = Math.round((e.pageX - this.offsetLeft) / jQuery(this).width() * 100);
    143                 if(live_track !== 'stop'){
    144                         var mySound = soundManager.getSoundById('son_' + track_index);
    145                         var newposition = Math.round(mySound.durationEstimate * x / 100) ;
    146                         soundManager.setPosition('son_' + track_index , newposition) ;
     141        jQuery("#scrollbar").click(function (e){
     142                var x = Math.round((e.pageX-this.offsetLeft)/jQuery(this).width()*100);
     143                if (live_track!=='stop'){
     144                        var mySound = soundManager.getSoundById('son_'+track_index);
     145                        var newposition = Math.round(mySound.durationEstimate*x/100);
     146                        soundManager.setPosition('son_'+track_index, newposition);
    147147                }
    148148                // pareil pour les videos
    149                 if(isVideoPlaying){
    150                         var position = Math.round(myListener.duration * x / 100);
     149                if (isVideoPlaying){
     150                        var position = Math.round(myListener.duration*x/100);
    151151                        getFlashObject().SetVariable("method:setPosition", position);
    152152                }
    153          });
    154 
    155         jQuery("#now_playing").change(function(){
     153        });
     154
     155        jQuery("#now_playing").change(function (){
    156156                scroller_init();
    157157        });
    158        
     158
    159159        // si option choisie, presser la barre espace arrete le lecteur
    160         if (player_data.key_espace_stop) {
    161                 jQuery(document).keypress(function(e)
    162                 {
     160        if (player_data.key_espace_stop){
     161                jQuery(document).keypress(function (e){
    163162                        key = (e.charCode) ? e.charCode : e.keyCode;
    164                         if(
    165                                 (key == 32) // espace
    166                                 || (key == 27) // esc
    167                         ) {
    168                                 if(isPlaying) {
     163                        if (
     164                                (key==32) // espace
     165                                        || (key==27) // esc
     166                                ){
     167                                if (isPlaying){
    169168                                        player_togglePause();
    170169                                }
    171                                 if (isVideoPlaying) {
     170                                if (isVideoPlaying){
    172171                                        // toto: faire la meme chose pour la video ?
    173                                        
     172
    174173                                }
    175174                        }
     
    183182function player_play(i){
    184183        player_stop();
    185         jQuery("#bouton_play").attr('src',player_data.dir + 'skins/blogo/pause.png');
    186 
    187         track_index = i ;
    188         live_track = i ;
     184        jQuery("#bouton_play").attr('src', player_data.dir+'skins/blogo/pause.png');
     185
     186        track_index = i;
     187        live_track = i;
    189188
    190189        //jQuery("span.play_:eq("+i+")").html("stop").addClass("play_on");             
    191         jQuery("span.play_:eq("+i+")").html("<img src='" + player_data.image_pause + "'/>").addClass("play_on");
     190        jQuery("span.play_:eq("+i+")").html("<img src='"+player_data.image_pause+"'/>").addClass("play_on");
    192191        // i c pas forcemment bon si t'as un player avant le lien, il faut retrancher le nb d'item de la playlist du lecteur
    193192        // (ne pas mettre enclosure aux deux ?)
    194193        // limiter une playliste a son parent plutot qu'a la page ?
    195        
     194
    196195        jQuery(".play_:eq("+i+")").addClass("play_on");
    197196
    198         if(soundManager.url != 'undefined'){
    199                
     197        if (soundManager.url!='undefined'){
     198
    200199                player_creer_son(i);
    201          
    202                 //jQuery("span#now_playing").html(i+"("+mp3Array[i]+")"+track_index);
    203                 //jQuery("span#now_playing").append("son_"+i.id3.artist);
     200
     201                //jQuery("span#now_playing").html(i+"("+mp3Array[i]+")"+track_index);
     202                //jQuery("span#now_playing").append("son_"+i.id3.artist);
    204203                file1 = mp3Titles[track_index];
    205                 file1 = file1.replace(/(%20)/g,' ');
    206                 file1 = file1.substr(0,90);
    207                 file1 = file1.replace(/(.mp3)/g,' ');
    208                 file1 = file1.replace(/(_|-)/g,' ');
     204                file1 = file1.replace(/(%20)/g, ' ');
     205                file1 = file1.substr(0, 90);
     206                file1 = file1.replace(/(.mp3)/g, ' ');
     207                file1 = file1.replace(/(_|-)/g, ' ');
    209208                //jQuery("img["+seljQ+"alt='play']").attr()
    210209                var taille = file1.length;
     
    213212                jQuery("#now_playing").width($large_s);
    214213                jQuery("#scroller").width($large_s);
    215                 jQuery("#now_playing").html(file1) ;
    216                 var taille =  jQuery("#scroller").width();
    217                 var min_taille = jQuery("#scroller_container").width();
    218 
    219            // adapter le defilement a la taille du texte
    220        jQuery.extend({scroller: {
    221                         interval:     0,
    222                         refresh:      300, // Refresh Time in ms
    223                         direction:    "left", // down,right,left,up
    224                         speed:        2,
    225                         id:           "#scroller",
    226                         cont_id:      "#scroller_container",
    227                         height:       30,
    228                         width:        taille,
    229                         min_height:   15,
    230                         min_width:    min_taille
     214                jQuery("#now_playing").html(file1);
     215                var taille = jQuery("#scroller").width();
     216                var min_taille = jQuery("#scroller_container").width();
     217
     218                // adapter le defilement a la taille du texte
     219                jQuery.extend({scroller:{
     220                        interval:0,
     221                        refresh:300, // Refresh Time in ms
     222                        direction:"left", // down,right,left,up
     223                        speed:2,
     224                        id:"#scroller",
     225                        cont_id:"#scroller_container",
     226                        height:30,
     227                        width:taille,
     228                        min_height:15,
     229                        min_width:min_taille
    231230                }});
    232        jQuery("#scroller").css("left", min_taille-taille) ;
    233 
    234             soundManager.play('son_'+i,{volume:100}) ;
    235             isPlaying = true ;
    236            
    237                 //lecteur_debug();
    238            
    239         }else{
     231                jQuery("#scroller").css("left", min_taille-taille);
     232
     233                soundManager.play('son_'+i, {volume:100});
     234                isPlaying = true;
     235
     236                //lecteur_debug();
     237
     238        } else {
    240239                // preparer un plan B si flash < 8
    241                 var playa='';
    242                 playa  =  '<div id="musicplayer" style="">' +
    243                  '</div>';     
     240                var playa = '';
     241                playa = '<div id="musicplayer" style="">'+
     242                        '</div>';
    244243                jQuery('body').append(playa);
    245                 jQuery('div#musicplayer').css({position:"fixed",top:"10px", right:"10px",width:"0",height:"0"});
    246        
     244                jQuery('div#musicplayer').css({position:"fixed", top:"10px", right:"10px", width:"0", height:"0"});
     245
    247246                //Ajouter le musicplayer de secours
    248                 playlist='';
    249                 deb=0;
    250                 for(j=i; j < mp3Array.length ; j++) {
    251                         if(deb > 0){
     247                playlist = '';
     248                deb = 0;
     249                for (j = i; j<mp3Array.length; j++){
     250                        if (deb>0){
    252251                                // Modification du code original. Voir ci-dessous.
    253                                 playlist = playlist + '|' + mp3Array[j];
     252                                playlist = playlist+'|'+mp3Array[j];
    254253                                // Fin modification
    255                         }else{
     254                        } else {
    256255                                playlist = mp3Array[j];
    257                                 deb=1;
     256                                deb = 1;
    258257                        }
    259                 }       
    260                
     258                }
     259
    261260                jQuery("#musicplayer").html('<object '+
    262261                        'type="application/x-shockwave-flash" '+
     
    272271
    273272function player_creer_son(i){
    274                         soundManager.createSound({
    275                         id:'son_'+i,url:mp3Array[i],
    276                         onfinish:function(){
    277                                 /*console.log(this.sID+' finished playing'),*/
    278                                 player_play(i+1)
    279                         },     
    280                         onid3:function(){
    281                                 /*console.log(this.id3['songname'])*/
    282                         },               
    283                         onload:function(){
    284                                 /*console.log(this.sID+' finished loading')*/
    285                         },             
    286                         whileloading:function(){
    287                                 /*console.log('sound '+this.sID+' loading, '+this.bytesLoaded+' of '+this.bytesTotal);*/
    288                                 var timer = this.bytesLoaded / this.bytesTotal * 100 ;
    289                                 var minutes = Math.floor(this.durationEstimate / 1000 / 60) ;
    290                                 var secondes = Math.floor((this.durationEstimate - minutes*1000*60) /1000);
    291                                 jQuery(".duration").html(minutes + "'" + secondes +"''");
    292                                 jQuery("#loading").css({width:Math.round(timer) +"%"});
    293                         }, // callback function for "download progress update" (X of Y bytes received)
    294                         onplay:function(){
    295                                 jQuery("#loading").css("cursor","hand");
    296                                 var minutes = Math.floor(this.durationEstimate / 1000 / 60) ;
    297                                 var secondes = Math.floor((this.durationEstimate - minutes*1000*60) /1000);
    298                                 jQuery(".duration").html(minutes + "'" + secondes +"''");               
    299                         },// callback for "play" start
    300                         whileplaying:function(){
    301                                 var minutes = Math.floor(this.position / 1000 / 60) ;
    302                                 var secondes = Math.floor((this.position - minutes*1000*60) /1000);
    303                                 var timer2 = this.position / this.durationEstimate * 100 ;
    304                                 jQuery("#position").css({width:Math.round(timer2) +"%"});
    305                                 jQuery(".position").html(minutes + "'" + secondes +"''");
    306                         },// callback during play (position update)
    307                         //'onstop':unLoad(this.sID),     // callback for "user stop"
    308                         //'onbeforefinish': null,        // callback for "before sound finished playing (at [time])"
    309                         //'onbeforefinishtime': 5000,    // offset (milliseconds) before end of sound to trigger beforefinish..
    310                         //'onbeforefinishcomplete':null, // function to call when said sound finishes playing
    311                         //'onjustbeforefinish':null,     // callback for [n] msec before end of current sound
    312                         //'onjustbeforefinishtime':200,  // [n] - if not using, set to 0 (or null handler) and event will not fire.
    313                         //'multiShot': true,             // let sounds "restart" or layer on top of each other when played multiple times..
    314                         //'pan': 0,                      // "pan" settings, left-to-right, -100 to 100
    315                         'volume': 100           
    316                         });     
    317 
    318 }       
     273        soundManager.createSound({
     274                id:'son_'+i, url:mp3Array[i],
     275                onfinish:function (){
     276                        /*console.log(this.sID+' finished playing'),*/
     277                        player_play(i+1)
     278                },
     279                onid3:function (){
     280                        /*console.log(this.id3['songname'])*/
     281                },
     282                onload:function (){
     283                        /*console.log(this.sID+' finished loading')*/
     284                },
     285                whileloading:function (){
     286                        /*console.log('sound '+this.sID+' loading, '+this.bytesLoaded+' of '+this.bytesTotal);*/
     287                        var timer = this.bytesLoaded/this.bytesTotal*100;
     288                        var minutes = Math.floor(this.durationEstimate/1000/60);
     289                        var secondes = Math.floor((this.durationEstimate-minutes*1000*60)/1000);
     290                        jQuery(".duration").html(minutes+"'"+secondes+"''");
     291                        jQuery("#loading").css({width:Math.round(timer)+"%"});
     292                }, // callback function for "download progress update" (X of Y bytes received)
     293                onplay:function (){
     294                        jQuery("#loading").css("cursor", "hand");
     295                        var minutes = Math.floor(this.durationEstimate/1000/60);
     296                        var secondes = Math.floor((this.durationEstimate-minutes*1000*60)/1000);
     297                        jQuery(".duration").html(minutes+"'"+secondes+"''");
     298                }, // callback for "play" start
     299                whileplaying:function (){
     300                        var minutes = Math.floor(this.position/1000/60);
     301                        var secondes = Math.floor((this.position-minutes*1000*60)/1000);
     302                        var timer2 = this.position/this.durationEstimate*100;
     303                        jQuery("#position").css({width:Math.round(timer2)+"%"});
     304                        jQuery(".position").html(minutes+"'"+secondes+"''");
     305                }, // callback during play (position update)
     306                //'onstop':unLoad(this.sID),     // callback for "user stop"
     307                //'onbeforefinish': null,        // callback for "before sound finished playing (at [time])"
     308                //'onbeforefinishtime': 5000,    // offset (milliseconds) before end of sound to trigger beforefinish..
     309                //'onbeforefinishcomplete':null, // function to call when said sound finishes playing
     310                //'onjustbeforefinish':null,     // callback for [n] msec before end of current sound
     311                //'onjustbeforefinishtime':200,  // [n] - if not using, set to 0 (or null handler) and event will not fire.
     312                //'multiShot': true,             // let sounds "restart" or layer on top of each other when played multiple times..
     313                //'pan': 0,                      // "pan" settings, left-to-right, -100 to 100
     314                'volume':100
     315        });
     316
     317}
    319318
    320319function player_stop(){
    321320        //reinit d'un autre play
    322         isPlaying = false ;
     321        isPlaying = false;
    323322
    324323        //jQuery("span.play_on").html('play');
    325         jQuery("span.play_on").html('<img src="' + player_data.image_play + '"/>');
     324        jQuery("span.play_on").html('<img src="'+player_data.image_play+'"/>');
    326325        jQuery("span.play_on").removeClass("play_on");
    327         live_track = 'stop' ;
    328        
     326        live_track = 'stop';
     327
    329328        jQuery(".playliste li.play_on").removeClass("play_on");
    330329        reset_boutons();
    331         soundManager.destroySound("son_" + track_index);
     330        soundManager.destroySound("son_"+track_index);
    332331        soundManager.stopAll();
    333332        //stop le musicplayer en flash < 8
    334333        jQuery("#musicplayer").html('');
    335334        jQuery("#now_playing").html('');
    336 }       
     335}
    337336
    338337
     
    343342
    344343function player_next(){
    345         unLoad("son_" + track_index);
     344        unLoad("son_"+track_index);
    346345        track_index++;
    347346        //file1=(mp3Array[track_index].split("/"))[(mp3Array[track_index].split("/")).length-1];
     
    350349}
    351350
    352 function player_prev(){ 
    353         unLoad("son_" + track_index);
    354         track_index--; 
     351function player_prev(){
     352        unLoad("son_"+track_index);
     353        track_index--;
    355354        //file1=(mp3Array[track_index].split("/"))[(mp3Array[track_index].split("/")).length-1];
    356355        //jQuery("#now_playing").html(file1) ;
    357356        player_play(track_index);
    358357}
    359        
    360 function player_togglePause(){ 
    361          soundManager.togglePause('son_'+live_track) ;
    362          //console.log(isPlaying);
    363          if(isPlaying == true){
    364                 isPlaying = false ;
    365          }else{
    366                 isPlaying = true ;
    367          }
     358
     359function player_togglePause(){
     360        soundManager.togglePause('son_'+live_track);
     361        //console.log(isPlaying);
     362        if (isPlaying==true){
     363                isPlaying = false;
     364        } else {
     365                isPlaying = true;
     366        }
    368367}
    369368
    370369function reset_boutons(){
    371         jQuery("#bouton_play").attr('src',player_data.dir + 'skins/blogo/play.png');
     370        jQuery("#bouton_play").attr('src', player_data.dir+'skins/blogo/play.png');
    372371        jQuery(".position").html("0'00''");
    373372        jQuery("#position,#loading").width(0);
     
    375374
    376375
    377 function Player_init(url_player) {
    378         soundManager.onload = function() {
     376function Player_init(url_player){
     377        soundManager.onload = function (){
    379378                // soundManager is initialised, ready to use. Create a sound for this demo page.
    380                 soundManager.createSound('aDrumSound',url_player);
     379                soundManager.createSound('aDrumSound', url_player);
    381380        }
    382381}
     
    384383// Nouvelle methode pour les tableaux
    385384// Retourne la premiere occurence correspondant, sinon false
    386 Array.prototype.contains = function (ele) {
    387         for (var i = 0; i < this.length; i++) {
    388                 if (this[i] == ele) {
     385Array.prototype.contains = function (ele){
     386        for (var i = 0; i<this.length; i++){
     387                if (this[i]==ele){
    389388                        return true;
    390389                }
     
    394393
    395394
    396    
    397395function lecteur_debug(){
    398         var content = jQuery("#debug").html() ;         
    399         jQuery("#debug").html(content + "<br />live_track = " +live_track ) ;
    400 };
     396        var content = jQuery("#debug").html();
     397        jQuery("#debug").html(content+"<br />live_track = "+live_track);
     398}
     399;
Note: See TracChangeset for help on using the changeset viewer.