Ignore:
Timestamp:
07/02/12 12:16:40 (8 years ago)
Author:
kent1
Message:

Eviter d'avoir deux sources identiques dans le modèle <audio>

Améliorations du js de flowplayer, il gère les boucles maintenant

Location:
plugins_spip/html5/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/html5/trunk/javascript/mediaspip_fallback_flash.js

    r6745 r6746  
    8585                                                lecteur += '<span class="volume_slider_container '+options.volume_slider_orientation+'"><span class="volume_slider"></span></span>';
    8686                                        }
     87                                        lecteur += '<span class="loop_button" title="'+mediaspip_player_lang.bouton_loop+'"></span>';
    8788                                        lecteur +='</div>'
    8889                                        + '</div>';
     
    113114                                    autoBuffering:options.autoload,
    114115                                    bufferLength:5,
    115                                     onBeforeBegin:function(){
    116                                 },
    117116                                onBeforeLoad:function(){
    118117                                },
     118                                onBeforeBegin:function(){
     119                                },
    119120                                    onBegin:function(clip){
     121                                        if(typeof(clip.looped) == 'undefined')
     122                                                clip.looped = false;
     123                                                controls.find('.loop_button').unbind('click').click(function(e){
     124                                                        if(clip.looped){
     125                                                                clip.looped = false;
     126                                                                $(this).attr('title',mediaspip_player_lang.bouton_loop);
     127                                                                wrapper.removeClass('loop');
     128                                                        }else{
     129                                                                clip.looped = true;
     130                                                                $(this).attr('title',mediaspip_player_lang.bouton_loop_looped);
     131                                                                wrapper.addClass('loop');
     132                                                        }
     133                                                        });
    120134                                        if(typeof(clip.duration) != 'undefined'){
    121135                                                var duration = mediaspip_second_to_time(clip.duration);
     
    128142                                                                wrapper.parent().progress_resize();
    129143                                        }
     144                                        wrapper.flow_play_pause('play');
    130145                                },
    131146                                onCuepoint:function(content) {
     
    154169                                        }
    155170                                    },
    156                                 onFinish:function(){
     171                                    onLastSecond:function(){
     172                                },
     173                                    onBeforeFinish: function(clip) {
     174                                    },
     175                                onFinish:function(clip){
    157176                                        wrapper.flow_play_pause('stop');
    158                                 },
    159                                 onLastSecond:function(){
     177                                        if(clip.looped){
     178                                                this.play();
     179                                        }
    160180                                },
    161181                                    onPause:function(clip){
     
    225245                            wrapper.find('.flowplayer').flowplayer().each(function() {
    226246                                var duration = false;
    227                                 this.onLoad(function(clip) {
     247                                this.onLoad(function() {
    228248                                        var player = this;
    229249                                                wrapper.removeClass('loading').addClass('paused');
    230250                                                controls.find('.play_pause_button').attr('title',mediaspip_player_lang.bouton_lire);
    231                                                 controls.find('.play_pause_button').click(function(e){
     251                                                controls.find('.play_pause_button').unbind('click').click(function(e){
    232252                                                        e.preventDefault();
    233253                                                        if (player.isLoaded()) {
     
    265285                                                        }
    266286                                                });
     287                                });
     288                                this.onClipAdd(function(clip){
    267289                                });
    268290                                this.onStart(function(clip) {
     
    313335                                        player.slider_done = false;
    314336       
    315                                         // clear previous timer
    316                                         clearInterval(timer);
    317        
    318337                                        // begin timer
    319                                         timer = setInterval(function(){
     338                                        var timer_function = function(){
    320339                                                if(typeof(clip.duration) == 'undefined'){
    321                                                         player.play();
    322                                                         player.pause();
     340                                                        return;
    323341                                                }
    324342                                               
     
    405423                                                        }
    406424                                                }
    407                                         }, 500);
     425                                        };
     426                                       
     427                                        // clear previous timer
     428                                        clearInterval(timer);
     429                                        timer = setInterval(timer_function, 500);
    408430                                        wrapper.find(".remaining_time").unbind('click').click(function(e){
    409431                                                        if($(this).is('.remaining')){
     
    423445                                        });
    424446                                });
    425                                 this.onFinish(function(clip) {         
    426                                         clearInterval(timer);   
    427                                 });
    428447                                this.onError(function(error){
    429        
    430448                                });
    431449                            });
     
    509527                         * Attention la série de isNaN est pour IE qui plante à ces endroits
    510528                         */
    511                         var buttons_right_width = 5;
     529                        var buttons_right_width = 0;
    512530                    $('.buttons_right').children().each(function(){
    513531                        if($(this).css('position') != 'absolute'){
  • plugins_spip/html5/trunk/modeles/audio.html

    r6600 r6746  
    5656                                #SET{variantes,#ARRAY}
    5757                                <BOUCLE_variantes(DOCUMENTS){mode=conversion}{objet=document}{id_objet=#ENV{id_document,#ENV{id}}}{statut==.*}>#SET{variantes,#GET{variantes}|push{#EXTENSION}}</BOUCLE_variantes>
    58                                 [(#EXTENSION|=={mp3}|et{#EXTENSION|in_array{#GET{variantes}}|non}|oui)
    59                                 <source type="#MIME_TYPE" src="[(#URL_DOCUMENT|url_absolue)]" />]
    6058                                <BOUCLE_ssdoc_mp3(DOCUMENTS){mode=conversion}{objet=document}{id_objet=#ENV{id_document,#ENV{id}}}{statut==.*}{extension IN mp3}{tout}>
    6159                                <source type="#MIME_TYPE" src="[(#URL_DOCUMENT|url_absolue)]" />
     
    6462                                <source type="#MIME_TYPE" src="[(#URL_DOCUMENT|url_absolue)]" />
    6563                                </BOUCLE_ssdoc>
    66                                 [(#EXTENSION|in_array{[(#ARRAY|push{ogg}|push{mp3})]}|et{[(#EXTENSION|in_array{#GET{variantes}}|non)]}|oui)
     64                                [(#EXTENSION|in_array{#ARRAY{0,ogg,1,mp3}}|et{#EXTENSION|in_array{#GET{variantes}}|non}|oui)
    6765                                <source type="#MIME_TYPE" src="[(#URL_DOCUMENT|url_absolue)]" />]
    6866                                [(#EXTENSION|in_array{[(#ARRAY|push{ogg}|push{mp3}|push{flac})]}|non)
     
    7371                                        <embed src='#URL_DOCUMENT' [(#ENV*|env_to_attributs)] width='#GET{largeur}' height='#GET{hauteur}'></embed>
    7472                                </object>]
    75                                
    7673                </audio>
    7774                </div>
Note: See TracChangeset for help on using the changeset viewer.