phpldapadmin/application/media/js/dojo-release-1.7.2/dojox/av/FLAudio.js

104 lines
3.1 KiB
JavaScript
Raw Permalink Normal View History

2012-06-19 02:07:43 +00:00
//>>built
define("dojox/av/FLAudio",["dojo","dojox/embed/Flash","dojox/timing/doLater"],function(_1,_2){
_1.experimental("dojox.av.FLVideo");
_1.declare("dojox.av.FLAudio",null,{id:"",initialVolume:0.7,initialPan:0,isDebug:false,statusInterval:200,_swfPath:_1.moduleUrl("dojox.av","resources/audio.swf"),allowScriptAccess:"always",allowNetworking:"all",constructor:function(_3){
_1.global.swfIsInHTML=function(){
return true;
};
_1.mixin(this,_3||{});
if(!this.id){
this.id="flaudio_"+new Date().getTime();
}
this.domNode=_1.doc.createElement("div");
_1.style(this.domNode,{position:"relative",width:"1px",height:"1px",top:"1px",left:"1px"});
_1.body().appendChild(this.domNode);
this.init();
},init:function(){
this._subs=[];
this.initialVolume=this._normalizeVolume(this.initialVolume);
var _4={path:this._swfPath.uri,width:"1px",height:"1px",minimumVersion:9,expressInstall:true,params:{wmode:"transparent",allowScriptAccess:this.allowScriptAccess,allowNetworking:this.allowNetworking},vars:{id:this.id,autoPlay:this.autoPlay,initialVolume:this.initialVolume,initialPan:this.initialPan,statusInterval:this.statusInterval,isDebug:this.isDebug}};
this._sub("mediaError","onError");
this._sub("filesProgress","onLoadStatus");
this._sub("filesAllLoaded","onAllLoaded");
this._sub("mediaPosition","onPlayStatus");
this._sub("mediaEnd","onComplete");
this._sub("mediaMeta","onID3");
this._flashObject=new dojox.embed.Flash(_4,this.domNode);
this._flashObject.onError=function(_5){
console.warn("Flash Error:",_5);
};
this._flashObject.onLoad=_1.hitch(this,function(_6){
this.flashMedia=_6;
this.isPlaying=this.autoPlay;
this.isStopped=!this.autoPlay;
this.onLoad(this.flashMedia);
});
},load:function(_7){
if(dojox.timing.doLater(this.flashMedia,this)){
return false;
}
if(!_7.url){
throw new Error("An url is required for loading media");
return false;
}else{
_7.url=this._normalizeUrl(_7.url);
}
this.flashMedia.load(_7);
return _7.url;
},doPlay:function(_8){
this.flashMedia.doPlay(_8);
},pause:function(_9){
this.flashMedia.pause(_9);
},stop:function(_a){
this.flashMedia.doStop(_a);
},setVolume:function(_b){
this.flashMedia.setVolume(_b);
},setPan:function(_c){
this.flashMedia.setPan(_c);
},getVolume:function(_d){
return this.flashMedia.getVolume(_d);
},getPan:function(_e){
return this.flashMedia.getPan(_e);
},getPosition:function(_f){
return this.flashMedia.getPosition(_f);
},onError:function(msg){
console.warn("SWF ERROR:",msg);
},onLoadStatus:function(_10){
},onAllLoaded:function(){
},onPlayStatus:function(_11){
},onComplete:function(_12){
},onLoad:function(){
},onID3:function(evt){
},destroy:function(){
if(!this.flashMedia){
this._cons.push(_1.connect(this,"onLoad",this,"destroy"));
return;
}
_1.forEach(this._subs,function(s){
_1.unsubscribe(s);
});
_1.forEach(this._cons,function(c){
_1.disconnect(c);
});
this._flashObject.destroy();
},_sub:function(_13,_14){
_1.subscribe(this.id+"/"+_13,this,_14);
},_normalizeVolume:function(vol){
if(vol>1){
while(vol>1){
vol*=0.1;
}
}
return vol;
},_normalizeUrl:function(_15){
if(_15&&_15.toLowerCase().indexOf("http")<0){
var loc=window.location.href.split("/");
loc.pop();
loc=loc.join("/")+"/";
_15=loc+_15;
}
return _15;
}});
return dojox.av.FLAudio;
});