web/wp-includes/js/scriptaculous/sound.js
changeset 194 32102edaa81b
parent 136 bde1974c263b
equal deleted inserted replaced
193:2f6f6f7551ca 194:32102edaa81b
     1 // script.aculo.us sound.js v1.8.0, Tue Nov 06 15:01:40 +0300 2007
     1 // script.aculo.us sound.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
     2 
     2 
     3 // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
     3 // Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
     4 //
     4 //
     5 // Based on code created by Jules Gravinese (http://www.webveteran.com/)
     5 // Based on code created by Jules Gravinese (http://www.webveteran.com/)
     6 //
     6 //
     7 // script.aculo.us is freely distributable under the terms of an MIT-style license.
     7 // script.aculo.us is freely distributable under the terms of an MIT-style license.
     8 // For details, see the script.aculo.us web site: http://script.aculo.us/
     8 // For details, see the script.aculo.us web site: http://script.aculo.us/
    21   play: function(url){
    21   play: function(url){
    22     if(!Sound._enabled) return;
    22     if(!Sound._enabled) return;
    23     var options = Object.extend({
    23     var options = Object.extend({
    24       track: 'global', url: url, replace: false
    24       track: 'global', url: url, replace: false
    25     }, arguments[1] || {});
    25     }, arguments[1] || {});
    26     
    26 
    27     if(options.replace && this.tracks[options.track]) {
    27     if(options.replace && this.tracks[options.track]) {
    28       $R(0, this.tracks[options.track].id).each(function(id){
    28       $R(0, this.tracks[options.track].id).each(function(id){
    29         var sound = $('sound_'+options.track+'_'+id);
    29         var sound = $('sound_'+options.track+'_'+id);
    30         sound.Stop && sound.Stop();
    30         sound.Stop && sound.Stop();
    31         sound.remove();
    31         sound.remove();
    32       })
    32       });
    33       this.tracks[options.track] = null;
    33       this.tracks[options.track] = null;
    34     }
    34     }
    35       
    35 
    36     if(!this.tracks[options.track])
    36     if(!this.tracks[options.track])
    37       this.tracks[options.track] = { id: 0 }
    37       this.tracks[options.track] = { id: 0 };
    38     else
    38     else
    39       this.tracks[options.track].id++;
    39       this.tracks[options.track].id++;
    40       
    40 
    41     options.id = this.tracks[options.track].id;
    41     options.id = this.tracks[options.track].id;
    42     $$('body')[0].insert( 
    42     $$('body')[0].insert(
    43       Prototype.Browser.IE ? new Element('bgsound',{
    43       Prototype.Browser.IE ? new Element('bgsound',{
    44         id: 'sound_'+options.track+'_'+options.id,
    44         id: 'sound_'+options.track+'_'+options.id,
    45         src: options.url, loop: 1, autostart: true
    45         src: options.url, loop: 1, autostart: true
    46       }) : Sound.template.evaluate(options));
    46       }) : Sound.template.evaluate(options));
    47   }
    47   }
    48 };
    48 };
    49 
    49 
    50 if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){
    50 if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){
    51   if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 }))
    51   if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 }))
    52     Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>')
    52     Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>');
       
    53   else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('Windows Media') != -1 }))
       
    54     Sound.template = new Template('<object id="sound_#{track}_#{id}" type="application/x-mplayer2" data="#{url}"></object>');
       
    55   else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('RealPlayer') != -1 }))
       
    56     Sound.template = new Template('<embed type="audio/x-pn-realaudio-plugin" style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>');
    53   else
    57   else
    54     Sound.play = function(){}
    58     Sound.play = function(){};
    55 }
    59 }