Changeset 108294 in spip-zone


Ignore:
Timestamp:
Jan 2, 2018, 3:54:58 PM (17 months ago)
Author:
cedric@…
Message:

Mise a jour de la lib mejs et des scripts d'initialisation et ajout d'une classe sur le modele player, ce qui permet au player par defaut de fonctionner.

Location:
_plugins_/player/trunk
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/player/trunk/javascript/mejs-init.js

    r104184 r108294  
    33        var L=mejsloader;
    44        if (typeof L == "undefined")
    5                 mejsloader = L = {gs:null,plug:{},css:{},init:null,c:0,cssload:null,to_run:{}};
     5                mejsloader = L = {gs:null,plug:{},css:{},init:null,c:0,cssload:null};
    66        if (!L.init){
    77                L.cssload = function (f){
     
    1313                                stylesheet.type = 'text/css';
    1414                                document.getElementsByTagName('head')[0].appendChild(stylesheet);
    15                         }
    16                 }
    17                 L.runplayers = function(infos){
    18                         if (infos) {
    19                                 L.to_run[infos.id] = infos;
    20                                 L.to_run[infos.id].cssLoaded = false;
    21                                 L.to_run[infos.id].toRun = true;
    22                                 //console.log(L.to_run);
    23                         }
    24                         for (var id in L.to_run){
    25                                 var opt = L.to_run[id];
    26                                 var run = L.to_run[id].toRun;
    27                                 //console.log(id);
    28                                 //console.log(opt);
    29                                 if (!L.to_run[id].cssLoaded) {
    30                                         for (var c in opt.css){
    31                                                 L.cssload(opt.css[c]);
    32                                         }
    33                                         L.to_run[id].cssLoaded = true;
    34                                 }
    35                                 for (var p in opt.plugins){
    36                                         //console.log(p);
    37                                         //console.log(L.plug[p]);
    38                                         // load this plugin
    39                                         if (typeof L.plug[p]=="undefined"){
    40                                                 //console.log("Load Plugin "+p);
    41                                                 run = false;
    42                                                 L.plug[p] = false;
    43                                                 jQuery.getScript(opt.plugins[p], function (){
    44                                                         L.plug[p] = true;
    45                                                         L.runplayers(false);
    46                                                 });
    47                                         }
    48                                         // this plugin is loading
    49                                         else if (L.plug[p]==false){
    50                                                 //console.log("Plugin "+p+" loading...");
    51                                                 run = false; // will be run on next call of runplayer
    52                                         }
    53                                         else {
    54                                                 //console.log("Plugin "+p+" loaded");
    55                                         }
    56                                 }
    57                                 if (run){
    58                                         mejs.MediaFeatures.isChromium = false; // bugfix Chromium : can now play mpx sound files
    59                                         new MediaElementPlayer('#'+id, jQuery.extend(opt.options, {
    60                                                 "success": function (media){
    61                                                         function togglePlayingState(){
    62                                                                 jQuery(media).closest('.mejs-inner').removeClass(media.paused ? 'playing' : 'paused').addClass(media.paused ? 'paused' : 'playing');
    63                                                         }
    64 
    65                                                         togglePlayingState();
    66                                                         media.addEventListener('play', togglePlayingState, false);
    67                                                         media.addEventListener('playing', togglePlayingState, false);
    68                                                         media.addEventListener('pause', togglePlayingState, false);
    69                                                         media.addEventListener('paused', togglePlayingState, false);
    70                                                         if (jQuery('#'+id).attr('autoplay')) media.play();
    71                                                 }
    72                                         }));
    73                                         L.to_run[id].toRun = false;
    74                                 }
    7515                        }
    7616                }
     
    8626                                                me.attr('id', id);
    8727                                        }
    88                                         var opt = {id:id, options: {}, plugins: {}, css: []}, i, v;
     28                                        var opt = {options: {}, plugins: {}, css: []}, i, v;
    8929                                        for (i in opt){
    9030                                                if (v = me.attr('data-mejs'+i)) opt[i] = jQuery.parseJSON(v);
    9131                                        }
     32                                        function runthisplayer(){
     33                                                var run = true;
     34                                                //console.log(css);
     35                                                for (var c in opt.css){
     36                                                        L.cssload(opt.css[c]);
     37                                                }
     38                                                for (var p in opt.plugins){
     39                                                        //console.log(p);
     40                                                        //console.log(L.plug[p]);
     41                                                        // load this plugin
     42                                                        if (typeof L.plug[p]=="undefined"){
     43                                                                //console.log("Load Plugin "+p);
     44                                                                run = false;
     45                                                                L.plug[p] = false;
     46                                                                jQuery.getScript(opt.plugins[p], function (){
     47                                                                        L.plug[p] = true;
     48                                                                        runthisplayer();
     49                                                                });
     50                                                        }
     51                                                        // this plugin is loading
     52                                                        else if (L.plug[p]==false){
     53                                                                //console.log("Plugin "+p+" loading...");
     54                                                                run = false;
     55                                                        }
     56                                                        else {
     57                                                                //console.log("Plugin "+p+" loaded");
     58                                                        }
     59                                                }
     60                                                if (run){
     61                                                        new MediaElementPlayer('#'+id, jQuery.extend(opt.options, {
     62                                                                "success": function (media){
     63                                                                        function togglePlayingState(){
     64                                                                                jQuery(media).closest('.mejs-inner').removeClass(media.paused ? 'playing' : 'paused').addClass(media.paused ? 'paused' : 'playing');
     65                                                                        }
    9266
    93                                         L.runplayers(opt);
     67                                                                        togglePlayingState();
     68                                                                        media.addEventListener('play', togglePlayingState, false);
     69                                                                        media.addEventListener('playing', togglePlayingState, false);
     70                                                                        media.addEventListener('pause', togglePlayingState, false);
     71                                                                        media.addEventListener('paused', togglePlayingState, false);
     72                                                                        if (me.attr('autoplay')) media.play();
     73                                                                }
     74                                                        }));
     75                                                }
     76                                        }
     77
     78                                        runthisplayer();
    9479                                })
    9580                        })(jQuery);
  • _plugins_/player/trunk/javascript/mejs-init.min.js

    r104184 r108294  
    1 var mejsloader;
    2 (function(){var a=mejsloader;"undefined"==typeof a&&(mejsloader=a={gs:null,plug:{},css:{},init:null,c:0,cssload:null,to_run:{}});a.init||(a.cssload=function(b){if("undefined"==typeof a.css[b]){a.css[b]=!0;var c=document.createElement("link");c.href=b;c.rel="stylesheet";c.type="text/css";document.getElementsByTagName("head")[0].appendChild(c)}},a.runplayers=function(b){b&&(a.to_run[b.id]=b,a.to_run[b.id].cssLoaded=!1,a.to_run[b.id].toRun=!0);for(var c in a.to_run){b=a.to_run[c];var d=a.to_run[c].toRun;
    3 if(!a.to_run[c].cssLoaded){for(var f in b.css)a.cssload(b.css[f]);a.to_run[c].cssLoaded=!0}for(var e in b.plugins)"undefined"==typeof a.plug[e]?(d=!1,a.plug[e]=!1,jQuery.getScript(b.plugins[e],function(){a.plug[e]=!0;a.runplayers(!1)})):0==a.plug[e]&&(d=!1);d&&(mejs.MediaFeatures.isChromium=!1,new MediaElementPlayer("#"+c,jQuery.extend(b.options,{success:function(a){function b(){jQuery(a).closest(".mejs-inner").removeClass(a.paused?"playing":"paused").addClass(a.paused?"paused":"playing")}b();a.addEventListener("play",
    4 b,!1);a.addEventListener("playing",b,!1);a.addEventListener("pause",b,!1);a.addEventListener("paused",b,!1);jQuery("#"+c).attr("autoplay")&&a.play()}})),a.to_run[c].toRun=!1)}},a.init=function(){!0===a.gs&&function(b){jQuery("audio.mejs,video.mejs").not(".done").each(function(){var b=jQuery(this).addClass("done"),d;(d=b.attr("id"))||(d="mejs-"+b.attr("data-id")+"-"+a.c++,b.attr("id",d));d={id:d,options:{},plugins:{},css:[]};var f,e;for(f in d)if(e=b.attr("data-mejs"+f))d[f]=jQuery.parseJSON(e);a.runplayers(d)})}(jQuery)});
    5 a.gs||("undefined"!==typeof mejscss&&a.cssload(mejscss),a.gs=jQuery.getScript(mejspath,function(){a.gs=!0;a.init();jQuery(a.init);onAjaxLoad(a.init)}))})();
     1var mejsloader; (function(){var a=mejsloader;"undefined"==typeof a&&(mejsloader=a={gs:null,plug:{},css:{},init:null,c:0,cssload:null});a.init||(a.cssload=function(b){if("undefined"==typeof a.css[b]){a.css[b]=!0;var c=document.createElement("link");c.href=b;c.rel="stylesheet";c.type="text/css";document.getElementsByTagName("head")[0].appendChild(c)}},a.init=function(){!0===a.gs&&function(b){jQuery("audio.mejs,video.mejs").not(".done").each(function(){function c(){var e=!0,h;for(h in d.css)a.cssload(d.css[h]);for(var f in d.plugins)"undefined"== typeof a.plug[f]?(e=!1,a.plug[f]=!1,jQuery.getScript(d.plugins[f],function(){a.plug[f]=!0;c()})):0==a.plug[f]&&(e=!1);e&&new MediaElementPlayer("#"+b,jQuery.extend(d.options,{success:function(a){function b(){jQuery(a).closest(".mejs-inner").removeClass(a.paused?"playing":"paused").addClass(a.paused?"paused":"playing")}b();a.addEventListener("play",b,!1);a.addEventListener("playing",b,!1);a.addEventListener("pause",b,!1);a.addEventListener("paused",b,!1);g.attr("autoplay")&&a.play()}}))}var g=jQuery(this).addClass("done"), b;(b=g.attr("id"))||(b="mejs-"+g.attr("data-id")+"-"+a.c++,g.attr("id",b));var d={options:{},plugins:{},css:[]},e,h;for(e in d)if(h=g.attr("data-mejs"+e))d[e]=jQuery.parseJSON(h);c()})}(jQuery)});a.gs||("undefined"!==typeof mejscss&&a.cssload(mejscss),a.gs=jQuery.getScript(mejspath,function(){a.gs=!0;a.init();jQuery(a.init);onAjaxLoad(a.init)}))})();
  • _plugins_/player/trunk/players/mejs/player.html

    r95522 r108294  
    44<dt class='spip_doc_titre player #ENV{player}'>
    55        <div class="mejs-audio-wrapper audio-wrapper"[ style='width:(#GET{largeur})px;max-width:100%;margin:0 auto;']>
    6                 <audio class="mejs[ mejs-(#GET{id_document})][ mejs-(#ENV{skin})][(#ENV{playlist}|oui)mejs-playlist]"
     6                <audio class="mejs mejs__player[ mejs-(#GET{id_document})][ mejs-(#ENV{skin})][(#ENV{playlist}|oui)mejs-playlist]"
    77                       data-id="[(#VAL{mejs-#GET{id_document}}|concat{'-',#GET{url},'-',#ENV{skin},}|md5)]"
    88                       src="#GET{url}"
Note: See TracChangeset for help on using the changeset viewer.