www.gusucode.com > 维六酷博客管理系统 1.1源码程序 > bottom.asp
<!-- #include file="conn.asp" --> <!--#include file="include.asp"--> <% Dim isplay Set rs=conn.Execute("Select isplay From WebBasicInfo Where W_ID=1") isplay=rs("isplay") rs.close Set rs=nothing %> <link rel="stylesheet" type="text/css" href="exobud.css"> <script language="JavaScript" > var objMmInfo = null; var intMmCnt = 0; var intSelMmCnt = 0; var intActMmCnt = 0; var cActIdx = 0; var cActTit = "nAnT"; var strMmInfo = "媒体档案信息"; var blnfpl = false; var blnEnabled = false; var blnEOT = false; var arrSelMm = null; var arrActMm = null; var intExobudStat = 0; var tidTLab = null; var tidErr = null; var tidMsg = null; var intErrCnt = 0; var blnRept = false; // 这是「自动连续播放」的设定。一般来说,播放一首音乐完毕后就会自动跳到下一首。 // 但是如果您要播放的媒体是视讯档案(例如:MV)的话,最好将这个设定值改为 false 。 // true = 自动连续播放 // false = 不要自动连续播放,让使用者自行挑选下一首曲目 var blnAutoProc = true; // 设定播放面板上所显示的时间长度,预设是以正常方式(Elapse)抑或倒数方式(Lapse)显示: // true = 以正常方式显示时间长度,即动态地显示曲目已播放的时间 // false = 以倒数方式显示时间长度,即动态地显示曲目剩余的时间 var blnElaps = true; // 设定播放每首曲目之间的延迟时间(Delay Time),单位是毫秒(msec)。 // 每100毫秒代表0.1秒,默认值是500毫秒(即0.5秒),最少也要设为100毫秒。 var intDelay = 500; // wmpInit() 函式: 使用 wmp-obj v7.x 链接库建立环境设定 function wmpInit(){ var wmps = Exobud.settings; var wmpc = Exobud.ClosedCaption; var isplay; isplay="<%=isplay%>"; if (isplay=="True") { wmps.autoStart = true; //打开就播放 } else { wmps.autoStart = false; } //wmps.autoStart = true; wmps.balance = 0; wmps.enableErrorDialogs = false; wmps.invokeURLs = false; wmps.mute = false; wmps.playCount = 1; wmps.rate = 1; wmps.volume = 100; //if(blnUseSmi){wmpc.captioningID="capText"; capText.style.display="";} Exobud.enabled = true; } // mkMmPath() 函式: 准备建立 Multi-object 的数组 function mkMmPath(u,t,f,s){ this.mmUrl = u; this.mmTit = t; this.mmDur = 0; this.selMm = f; this.actMm = f; if(blnUseSmi){this.mmSmi=s;} } // mkList() 函式: 建立 Multi-object 的数组 function mkList(u,t,s,f){ var cu = u; var ct = t; var cs = s; var cf = f; var idx = 0; if(objMmInfo == null){objMmInfo=new Array(); idx=0;} else {idx=objMmInfo.length;} if(u=="" || u==null){cu="mms://";} if(t=="" || t==null){ct="nAnT";} if(f=="f" || f=="F"){cf="f";} else {cf="t"; intSelMmCnt++;} if(blnUseSmi){ objMmInfo[idx]=new mkMmPath(cu,ct,cf,cs); } else { objMmInfo[idx]=new mkMmPath(cu,ct,cf); } intActMmCnt = intSelMmCnt; intMmCnt = objMmInfo.length; } // mkSel() 函式: 建立已选取播放项目(Selected Media)的数组 function mkSel(){ arrSelMm = null; intSelMmCnt = 0; var selidx = 0; if(intMmCnt<=0){intExobudStat=1; blnEnabled=false; return;} // 没有任何播放清单项目 arrSelMm = new Array(); for(var i=0; i<intMmCnt; i++){ if(objMmInfo[i].selMm =="t"){arrSelMm[selidx]=i;selidx++;} } intSelMmCnt=arrSelMm.length; if(intSelMmCnt<=0){blnEnabled=false; intExobudStat=2; arrSelMm=null; return;} else {blnEnabled=true; mkAct();} } // mkAct() 函式: 建立已启用播放项目(Activated Media)的数组 function mkAct(){ arrActMm = null; intActMmCnt = 0; var selidx = 0; var actidx = 0; if(blnEnabled){ arrActMm=new Array(); for(var i=0; i<intSelMmCnt; i++){ selidx=arrSelMm[i]; if(objMmInfo[selidx].actMm=="t"){arrActMm[actidx]=selidx; actidx++;} } intActMmCnt=arrActMm.length; } else { return;} if(intActMmCnt<=0){blnEOT=true;arrActMm=null;} else {blnEOT=false;} } // chkAllSel() 函式: 全部选取所有的播放清单项目 function chkAllSel(){ for(var i=0; i<intMmCnt; i++){ objMmInfo[i].selMm="t"; objMmInfo[i].actMm="t"; } mkSel(); } // chkAllDesel() 函式: 不选取所有的播放清单项目 function chkAllDesel(){ for(var i=0; i<intMmCnt; i++){ objMmInfo[i].selMm="f"; objMmInfo[i].actMm="f"; } mkSel(); } // chkItemSel() 函式: 选取或不选取播放清单项目 function chkItemSel(idx){ if(objMmInfo[idx].selMm =="t"){ objMmInfo[idx].selMm="f";objMmInfo[idx].actMm="f"; } else { objMmInfo[idx].selMm="t";objMmInfo[idx].actMm="t"; } mkSel(); } // chkItemAct() 函式: 将某个已启用播放项目(Activated Media)冻结 function chkItemAct(idx){ objMmInfo[idx].actMm="f"; mkAct(); } // mkSelAct() 函式: 将已选取播放项目(Selected Media)加入到已启用播放项目(Activated Media) function mkSelAct(){ var idx=0; for(var i=0; i<intSelMmCnt; i++){ idx=arrSelMm[i]; objMmInfo[idx].actMm="t"; } mkAct(); } // initExobud() 函式: 初始化 ExoBUD MP 媒体播放程序 function initExobud(){ wmpInit(); mkSel(); blnfpl = false; if(!blnShowVolCtrl) { document.images['vmute'].style.display = "none"; document.images['vdn'].style.display = "none"; document.images['vup'].style.display = "none"; } if(!blnShowPlist){ document.images['plist'].style.display = "none";} if(blnRept){imgChange('rept',1);} else {imgChange('rept',0);} if(blnRndPlay){imgChange('pmode',1);} else {imgChange('pmode',0);} showTLab(); disp1.innerHTML = "92design.cn 无限精彩"; if(blnStatusBar){ window.status=('92design.cn 无限精彩');} if(blnAutoStart){startExobud();} } // startExobud() 函式: 开始播放曲目 function startExobud(){ var wmps = Exobud.playState; if(wmps==2){ Exobud.controls.play(); try{clearInterval(play_time)}catch(e){} return; } if(wmps==3){ return;} blnfpl=false; if(!blnEnabled){waitMsg();return;} if(blnEOT){mkSelAct();} if(intErrCnt>0){intErrCnt=0;tidErr=setTimeout('retryPlay(),1000');return;} if(blnRndPlay){rndPlay();} else {cActIdx=arrActMm[0]; selMmPlay(cActIdx);} //alert(Exobud.controls.isavailable('play')); } //播放 function play() { if (Exobud.controls.isavailable('play')) { Exobud.controls.play(); } } // selMmPlay() 函式: 处理媒体标题 function selMmPlay(idx){ clearTimeout(tidErr); cActIdx=idx; var trknum=idx+1; var ctit =objMmInfo[idx].mmTit; if(ctit=="nAnT"){ctit="(没有媒体标题)"} if(blnUseSmi){Exobud.ClosedCaption.SAMIFileName = objMmInfo[idx].mmSmi;} Exobud.URL = objMmInfo[idx].mmUrl; cActTit = trknum + "." + ctit; disp1.innerHTML = cActTit; if(blnStatusBar){ window.status=(cActTit);} chkItemAct(cActIdx); } // wmpPlay() 函式: 使用 wmp-obj v7.x 链接库播放曲目 function wmpPlay(){Exobud.controls.play();} // wmpStop() 函式: 停止播放曲目及显示「就绪」状态讯息 function wmpStop(){ intErrCnt=0; clearTimeout(tidErr); clearInterval(tidTLab); imgChange("stopt",1); imgChange("pauzt",0); imgChange("scope",0); showTLab(); mkSelAct(); Exobud.controls.stop(); Exobud.close(); CourseButton.style.pixelLeft=0 disp1.innerHTML = "<font class=title>92design.cn 无限精彩</font>"; if(blnStatusBar){ window.status=('92design.cn 无限精彩');return true;} } // wmpPause() 函式: 使用 wmp-obj v7.x 链接库暂停播放曲目 function wmpPause(){Exobud.controls.pause();} // wmpPP() 函式: 在暂停播放和继续播放之间进行切换 function wmpPP(){ var wmps = Exobud.playState; var wmpc = Exobud.controls; clearInterval(tidTLab); clearTimeout(tidMsg); if(wmps==2){wmpc.play();} if(wmps==3){wmpc.pause(); disp2.innerHTML="<font color=#FFFFFF><b>暂停</b></font>"; tidMsg=setTimeout('rtnTLab()',1500);} return; } // rndPlay() 函式: 随机播放(Random Play)的运算方式 function rndPlay(){ if(!blnEnabled){waitMsg();return;} intErrCnt=0; var idx=Math.floor(Math.random() * intActMmCnt); cActIdx=arrActMm[idx]; selMmPlay(cActIdx); } // playAuto() 函式: 对已启用播放项目进行「自动连续播放」的处理 // 这是根据上面 blnAutoProc 的设定值而决定的动作。 function playAuto(){ if(blnRept){selMmPlay(cActIdx);return;} if(!blnAutoProc){wmpStop();return;} if(blnfpl){wmpStop();return;} if(!blnEnabled){wmpStop();return;} if(blnEOT){ if(blnLoopTrk){startExobud();} else {wmpStop();} } else { if(blnRndPlay){rndPlay();} else {cActIdx=arrActMm[0]; selMmPlay(cActIdx);} } } // 播放使用者在播放清单上所点选的单一曲目 function selPlPlay(idx){ blnfpl=true; selMmPlay(idx); } // playPrev() 函式: 播放上一首已启用播放项目 function playPrev(){ var wmps = Exobud.playState; if(wmps==2 || wmps==3){Exobud.controls.stop();} blnfpl=false; if(!blnEnabled){waitMsg();return;} if(blnEOT){mkSelAct();} intErrCnt=0; if(blnRndPlay){rndPlay();} else { var idx=cActIdx; var blnFind=false; for(var i=0;i<intSelMmCnt;i++){ if(cActIdx==arrSelMm[i]){idx=i-1; blnFind=true;}} if(!blnFind){startExobud();return;} if(idx<0){idx=intSelMmCnt-1;cActIdx=arrSelMm[idx];} else {cActIdx=arrSelMm[idx];} selMmPlay(cActIdx); } play(); } // playNext() 函式: 播放下一首已启用播放项目 function playNext(){ var wmps = Exobud.playState; if(wmps==2 || wmps==3){Exobud.controls.stop();} blnfpl=false; if(!blnEnabled){waitMsg();return;} if(blnEOT){mkSelAct();} intErrCnt=0; if(blnRndPlay){rndPlay();} else { var idx=cActIdx; var blnFind=false; for(var i=0;i<intSelMmCnt;i++){ if(cActIdx==arrSelMm[i]){idx=i+1; blnFind=true;}} if(!blnFind){startExobud();return;} if(idx>=intSelMmCnt){idx=0;cActIdx=arrSelMm[idx];} else {cActIdx=arrSelMm[idx];} selMmPlay(cActIdx); } play(); } // retryPlay() 函式: 再次尝试联机到媒体档案 function retryPlay(){ selMmPlay(cActIdx); } // chkRept() 函式: 切换是否重复播放目前的曲目(已启用播放项目) function chkRept(){ var wmps = Exobud.playState; if(wmps==3){clearInterval(tidTLab);} if(blnRept){ blnRept=false; imgChange('rept',0); disp2.innerHTML="<font color=#FFFFFF><b>不重复播放</b></font>"; } else { blnRept=true; imgChange('rept',1); disp2.innerHTML="<font color=#FFFFFF><b>重复播放</b></font>"; } tidMsg=setTimeout('rtnTLab()',1000); } // chgPMode() 函式: 切换以循序(Sequential)抑或随机(Random)的方式来播放媒体项目 function chgPMode(){ var wmps = Exobud.playState; if(wmps==3){clearInterval(tidTLab);} if(blnRndPlay){ blnRndPlay=false; imgChange('pmode',0); disp2.innerHTML="<font color=#FFFFFF><b>循序播放</b></font>"; } else { blnRndPlay=true; imgChange('pmode',1); disp2.innerHTML="<font color=#FFFFFF><b>随机播放</b></font>"; } tidMsg=setTimeout('rtnTLab()',1000); } // evtOSChg() 函式: 以弹出窗口方式显示媒体档案信息 function evtOSChg(f){ // 以下是状态值 (f) 的说明: // 0(未定义) 8(转换媒体中) 9(寻找媒体中) 10(联机媒体中) 11(加载媒体中) // 12(开启媒体中) 13(媒体已开启) 20(等待播放中) 21(正在开启不明的连结) //if(f==8){capText.innerHTML="<p class=title>© 92design.cn ™";} if(f==13){ var strTitle = Exobud.currentMedia.getItemInfo("Title"); if(strTitle.length <= 0){strTitle = "(未命名的标题)"} var strAuthor = Exobud.currentMedia.getItemInfo("Author"); if(strAuthor.length <= 0){strAuthor = "(未命名的演出者)"} var strCopy = Exobud.currentMedia.getItemInfo("Copyright"); if(strCopy.length <= 0){strCopy = "(没有著作权信息)"} var strType = Exobud.currentMedia.getItemInfo("MediaType"); var strDur = Exobud.currentMedia.durationString; var strUrl = Exobud.URL; var trknum = cActIdx+1; var ctit = objMmInfo[cActIdx].mmTit; if(ctit=="nAnT"){ objMmInfo[cActIdx].mmTit = strAuthor + " - " + strTitle; ctit = strAuthor + " - " + strTitle; cActTit = trknum + ". " + ctit; disp1.innerHTML = cActTit; } strMmInfo = " 标题: " + strTitle + " (形式: " + strType +")" + "\n\n"; strMmInfo += " 演出者: " + strAuthor + "\n\n"; strMmInfo += "档案位置: " + strUrl + "\n\n"; strMmInfo += " 著作权: " + strCopy + "\n\n"; strMmInfo += "时间长度: " + strDur + "\n\n\n"; strMmInfo += " 92design.cn.\n"; strMmInfo += " ALL RIGHTS RESERVED.\n"; if(blnShowMmInfo){alert(strMmInfo);} } } // evtPSChg() 函式: 切换播放程序的动作 function evtPSChg(f){ // 以下是状态值 (f) 的说明: // 0(未定义) 1(已停止播放) 2(已暂停播放) 3(正在播放中) 4(向前搜索) 5(向后搜索) // 6(缓冲处理中) 7(等待中) 8(已播放完毕) 9(转换曲目中) 10(就绪状态) switch(f){ case 1: evtStop(); break; case 2: evtPause(); break; case 3: evtPlay(); break; case 8: setTimeout('playAuto()', intDelay); break; } } // evtWmpBuff() 函式: 对媒体档案进行缓冲处理(Buffering)的动作 function evtWmpBuff(f){ if(f){ disp2.innerHTML = "缓冲处理中"; var msg = cActTit; disp1.innerHTML = msg; if(blnStatusBar){ window.status=(msg);} } else { disp1.innerHTML = cActTit; showTLab(); } } // evtWmpError() 函式: 当无法联机到媒体档案时,显示错误讯息 function evtWmpError(){ intErrCnt++; Exobud.Error.clearErrorQueue(); if(intErrCnt<=3){ disp2.innerHTML = "<font color=#FFFFFF><b>尝试联机 (" + intErrCnt + ")</font>"; var msg = "<font color=#FFFFFF><b>(尝试第 " + intErrCnt + " 次联机) " + cActTit+"</font>"; disp1.innerHTML = "<font color=#FFFFFF><b><无法播放> " + cActTit +"</font>"; if(blnStatusBar){ window.status=(msg);} tidErr=setTimeout('retryPlay()',1000); } else { clearTimeout(tidErr); intErrCnt=0;showTLab(); var msg = "<font color=#FFFFFF><b>已放弃尝试再联机。现在将会播放下一首曲目。</font>"; if(blnStatusBar){ window.status=(msg);} setTimeout('playAuto()',1000);} } // evtStop() 函式: 停止播放 function evtStop(){ clearTimeout(tidErr); clearInterval(tidTLab); showTLab(); intErrCnt=0; imgChange("pauzt",0); imgChange("playt",0); imgChange("scope",0); disp1.innerHTML = "<font class=title>等待中…</font>"; if(blnStatusBar){ window.status=('等待…');return true;} } // evtPause() 函式: 暂停播放 function evtPause(){ imgChange("pauzt",1) imgChange("playt",0); imgChange("stopt",0); imgChange("scope",0); clearInterval(tidTLab); showTLab(); } // evtPlay() 函式: 开始播放 function evtPlay(){ imgChange("pauzt",0) imgChange("playt",1); imgChange("stopt",0); imgChange("scope",1); tidTLab=setInterval('showTLab()',1000); } // showTLab() 函式: 显示时间长度 function showTLab(){ var ps = Exobud.playState; if(ps==2 || ps==3){ var cp=Exobud.controls.currentPosition; var cps=Exobud.controls.currentPositionString; var dur=Exobud.currentMedia.duration; var durs=Exobud.currentMedia.durationString; if(blnElaps){ disp2.innerHTML = "<font color=#FFFFFF><b>"+cps + " | " + durs+"</b></font>"; var msg = "<font color=#FFFFFF><b>"+cActTit + " (" + cps + " | " + durs + ")</b></font>"; if(ps==2){msg = "(暂停) " + msg;} if(blnStatusBar){ //window.status=(msg); CourseButton.style.pixelLeft=Math.round((CourseButtonBox.offsetWidth-CourseButton.offsetWidth)*Exobud.controls.currentposition/Exobud.currentMedia.duration) return true; } } else { var laps = dur-cp; var strLaps = wmpTime(laps); disp2.innerHTML = "<font color=#FFFFFF><b>"+strLaps + " | " + durs+"</b></font>"; var msg = "<font color=#FFFFFF><b>"+cActTit + " (" + strLaps + " | " + durs + ")</b></font>"; if(ps==2){msg = "(暂停) " + msg;} if(blnStatusBar){ //window.status=(msg); CourseButton.style.pixelLeft=Math.round((CourseButtonBox.offsetWidth-CourseButton.offsetWidth)*Exobud.controls.currentposition/Exobud.currentMedia.duration) return true;} } } else { disp2.innerHTML = "<font color=#FFFFFF><b>00:00 | 00:00</b></font>"; } } // chgTimeFmt() 函式: 变更时间长度的显示方式 function chgTimeFmt(){ var wmps = Exobud.playState; if(wmps==3){clearInterval(tidTLab);} if(blnElaps){ blnElaps=false; disp2.innerHTML="<font color=#FFFFFF><b>倒数方式</b></font>"; } else { blnElaps=true; disp2.innerHTML="<font color=#FFFFFF><b>正常方式</b></font>"; } tidMsg=setTimeout('rtnTLab()',1000); } // rtnTLab() 函式: 传回时间长度 function rtnTLab(){ clearTimeout(tidMsg); var wmps = Exobud.playState; if(wmps==3){tidTLab=setInterval('showTLab()',1000);} else {showTLab();} } // wmpTime() 函式: 计算时间长度 function wmpTime(dur){ var hh, min, sec, timeLabel; hh=Math.floor(dur/3600); min=Math.floor(dur/60)%60; sec=Math.floor(dur%60); if(isNaN(min)){ return "00:00";} if(isNaN(hh) || hh==0){timeLabel="";} else { if(hh>9){timeLabel = hh.toString() + ":";} else {timeLabel = "0" + hh.toString() + ":";} } if(min>9){timeLabel = timeLabel + min.toString() + ":";} else {timeLabel = timeLabel + "0" + min.toString() + ":";} if(sec>9){timeLabel = timeLabel + sec.toString();} else {timeLabel = timeLabel + "0" + sec.toString();} return timeLabel; } //滚动条事件 var EventObject=0,Old_X,New_X; function button_down(){//拖动按钮按下事件 EventObject=event.srcElement; Old_X=event.clientX; EventObject.setCapture(); } function button_move(){//拖动按钮移动事件 if(EventObject){ New_X=event.clientX; var MovePels=EventObject.style.pixelLeft+New_X-Old_X; var MaxBound=document.all(EventObject.id+"Box").offsetWidth-EventObject.offsetWidth; if(EventObject&&MovePels<=MaxBound&&MovePels>=0){ EventObject.style.pixelLeft=MovePels; eval(EventObject.id+"Event("+EventObject.style.pixelLeft+","+MaxBound+")"); Old_X=New_X; } } } function button_up(){//拖动按钮松开事件 if(EventObject){ EventObject.releaseCapture(); EventObject=0; } } function CourseButtonEvent(l,m){//播放进程控制 Exobud.controls.currentposition=Math.round(Exobud.currentMedia.duration*l/m); } function VolumeButtonEvent(l,m){//音量控制 var wmps=Exobud.playState; if(wmps == 3){clearInterval(tidTLab);} var ps = Exobud.settings; ps.volume=Math.round((l/m)*100); disp2.innerHTML = "<font color=#FFFFFF><b>音量: " + ps.volume + "%</b></font>"; } function TrackButtonEvent(l,m){//声道控制 var n=Math.round(l/m*100); var ps = Exobud.settings; ps.balance=n==50?0:n>50?(n-50)*1.8:n<50?-(50-n)*1.8:0; } vArray = new Array(); vArray[0] = 0; vArray[1] = 10; vArray[2] = 20; vArray[3] = 30; vArray[4] = 40; vArray[5] = 50; vArray[6] = 60; vArray[7] = 70; vArray[8] = 80; vArray[9] = 90; vArray[10] = 100; function SetVolume(index) { var wmps=Exobud.playState; if(wmps == 3){clearInterval(tidTLab);} var ps = Exobud.settings; ps.volume = vArray[index]; document.images["meter"].src = eval("meter" + index + ".src"); disp2.innerHTML="<font color=#FFFFFF><b>Vol. " + ps.volume +"%</b></font>"; if(ps.volume != 0 && ps.mute){ps.mute = false;imgChange("vmute", 0);} if(ps.volume == 0 && !ps.mute){ps.mute = true;disp2.innerHTML="<font color=#FFFFFF><b>静音模式</b></font>"; imgChange("vmute", 1);} tidMsg=setTimeout('rtnTLab()',1000); } function MeterClick(n) { SetVolume(n); } // wmpMute() 函式: 静音模式(Mute) function wmpMute(){ var wmps=Exobud.playState; if(wmps == 3){clearInterval(tidTLab);} var ps = Exobud.settings; if(!ps.mute){ps.mute = true;disp2.innerHTML="<font color=#FFFFFF><b>静音模式启动</b></font>"; imgChange("vmute", 1);} else {ps.mute = false;disp2.innerHTML="<font color=#FFFFFF><b>静音模式关闭</b></font>"; imgChange("vmute", 0);} tidMsg=setTimeout('rtnTLab()',1000); } //function wmpMute(){ // var wmps = Exobud.playState; // if(wmps==3){clearInterval(tidTLab);} // var ps = Exobud.settings; // if(!ps.mute){ // ps.mute=true; disp2.innerHTML="开启静音模式"; imgChange("vmute",1); // } else { // ps.mute=false; disp2.innerHTML="关闭静音模式"; imgChange("vmute",0); // } // tidMsg=setTimeout('rtnTLab()',1000); //} // waitMsg() 函式: 显示因播放列表空白而无法播放的讯息 function waitMsg(){ //capText.innerHTML="<p class=title> © 92design.cn ™"; if(intExobudStat==1){disp1.innerHTML = "无法播放 - 播放列表上没有设定任何曲目。";} if(intExobudStat==2){disp1.innerHTML = "无法播放 - 您没有选取播放列表上任何一首曲目。";} if(blnStatusBar){ if(intExobudStat==1){ window.status=('无法播放 - 播放列表上没有设定任何曲目。'); return true;} if(intExobudStat==2){ window.status=('无法播放 - 您没有选取播放列表上任何一首曲目。'); return true;} } } // openPlist() 函式: 以弹出窗口显示播放清单内容 function openPlist(){ window.open("exobudpl.htm","mplist","top=50,left=320,width=400,height=400,scrollbars=no,resizable=yes,copyhistory=no"); } // chkWmpState() 函式: 当播放程序动作变更时,传回 playState 的状态值 function chkWmpState(){ // 以下是状态值的说明: // 0(未定义) 1(已停止播放) 2(已暂停播放) 3(正在播放中) 4(向前搜索) 5(向后搜索) // 6(缓冲处理中) 7(等待中) 8(已播放完毕) 9(转换曲目中) 10(就绪状态) return Exobud.playState; } // chkWmpOState() 函式: 当播放程序开启媒体档案准备播放时,传回 openState 的状态值 function chkWmpOState(){ // 以下是状态值的说明: // 0(未定义) 8(转换媒体中) 9(寻找媒体中) 10(联机媒体中) 11(加载媒体中) // 12(开启媒体中) 13(媒体已开启) 20(等待播放中) 21(正在开启不明的连结) return Exobud.openState; } // chkOnline() 函式: 检查使用者的联机状态 (不一定每款面板都会使用) function chkOnline(){ // 传回值: true(已联机到因特网) false(没有联机到因特网) return Exobud.isOnline; } // cnExobud() 函式: 点选连到 ExoBUD MP 播放器简体中文网站 (不一定每款面板都会使用) function cnExobud(){ // 使用范例: <span onClick="vizExobud()" style="cursor:hand" title="http://www.92design.cn"> window.open("http://www.92design.cn","vizExobud"); } // vizExobud() 函式: 点选连到 ExoBUD MP 播放器原作者的官方网站[韩文] (不一定每款面板都会使用) function vizExobud(){ // 使用范例: <span onClick="vizExobud()" style="cursor:hand" title="http://exobud.nayana.org"> window.open("http://exobud.nayana.org","vizExobud"); } </script> <SCRIPT Language="JavaScript" src="js/set.js"></SCRIPT> <script language="JavaScript" src="js/addlist.js"></script> <script language="JScript" for="Exobud" event="openStateChange(sf)">evtOSChg(sf);</script> <script language="JScript" for="Exobud" event="playStateChange(ns)">evtPSChg(ns);</script> <script language="JScript" for="Exobud" event="error()">evtWmpError();</script> <script language="JScript" for="Exobud" event="Buffering(bf)">evtWmpBuff(bf);</script> <script language="JavaScript" src="js/imgchg.js"></script> <style type="text/css"> .noshow{display:none;} body{font-size:12px;} </style> </head> <body onLoad="initExobud();openPlaylist('play_list');" style="BACKGROUND-COLOR:transparent;" topmargin=5 leftmargin=0 marginwidth=0 marginheight=0> <div class="noshow"> <object id="Exobud" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" width="304" height="0" > <param name="autoStart" value="true"> <param name="balance" value="0"> <param name="currentPosition" value="0"> <param name="currentMarker" value="0"> <param name="enableContextMenu" value="false"> <param name="enableErrorDialogs" value="false"> <param name="enabled" value="true"> <param name="fullScreen" value="false"> <param name="invokeURLs" value="false"> <param name="mute" value="false"> <param name="playCount" value="1"> <param name="rate" value="1"> <param name="uiMode" value="invisible"> <param name="volume" value="100"> </object> </div> <span class="noshow" id="disp2" title="时间长度显示方式 (正常/倒数)" style="width:105;cursor:default;padding-bottom:2px"> <strong>00:00| 00:00</strong></span> <div align="center" class="noshow"> <center> <table border="0" cellpadding="0" cellspacing="1"> <tr> <td><img border="0" src="./img/suiji.gif" width="36" height="19" name="pmode" onClick="chgPMode()" style="cursor:default" ></td> </tr> <tr> <td><img border="0" src="./img/s.gif" width="36" height="19" name="rept" onClick="chkRept()" style="cursor:default" ></td> </tr> </table> </center> </div> <div align="left"> <table border="0" cellpadding="0" cellspacing="0" style="position: relative; left: 5; top: 0" width="300" height="20"> <tr> <td width="12"><img src="images/voice.gif" width="12" height="16"></td> <td width="33"><img src="images/music.gif" width="33" height="9"></td> <td width="30"><img border="0" src="images/pre.gif" width="9" height="8" name="prevt" onClick="playPrev()" style="cursor:hand" title="上一首曲目"> <img border="0" src="images/next.gif" width="9" height="8" name="nextt" onClick="playNext()" style="cursor:hand" title="下一首曲目"></td> <td width="20"><img border="0" src="images/stop.gif" name="pauzt" onClick="wmpPP()" style="cursor:hand" title="暂停.继续"></td> <td width="20"> <img border="0" src="images/play.gif" name="playt" onClick="play()" style="cursor:hand" title="播放"></td> <td><span id="disp1" style="font-size:12px;">歌曲名称</span></td> </tr> </table> </div> <script language="JavaScript"> moveflag = false; movable = false; var lrcO; var ffbb = 0; function lrcClass(tt) { this.inr = []; this.oTime = 0; this.dts = -1; this.dte = -1; this.dlt = -1; this.ddh; this.fjh; lrcbc.style.width = 0; if(/\[offset\:(\-?\d+)\]/i.test(tt)) this.oTime = RegExp.$1/1000; tt = tt.replace(/\[\:\][^$\n]*(\n|$)/g,"$1"); tt = tt.replace(/\[[^\[\]\:]*\]/g,""); tt = tt.replace(/\[[^\[\]]*[^\[\]\d]+[^\[\]]*\:[^\[\]]*\]/g,""); tt = tt.replace(/\[[^\[\]]*\:[^\[\]]*[^\[\]\d\.]+[^\[\]]*\]/g,""); tt = tt.replace(/<[^<>]*[^<>\d]+[^<>]*\:[^<>]*>/g,""); tt = tt.replace(/<[^<>]*\:[^<>]*[^<>\d\.]+[^<>]*>/g,""); while(/\[[^\[\]]+\:[^\[\]]+\]/.test(tt)) { tt = tt.replace(/((\[[^\[\]]+\:[^\[\]]+\])+[^\[\r\n]*)[^\[]*/,"\n"); var zzzt = RegExp.$1; /^(.+\])([^\]]*)$/.exec(zzzt); var ltxt = RegExp.$2; var eft = RegExp.$1.slice(1,-1).split("]["); for(var ii=0; ii<eft.length; ii++) { var sf = eft[ii].split(":"); var tse = parseInt(sf[0],10) * 60 + parseFloat(sf[1]); var sso = { t:[] , w:[] , n:ltxt } sso.t[0] = tse-this.oTime; this.inr[this.inr.length] = sso; } } this.inr = this.inr.sort( function(a,b){return a.t[0]-b.t[0];} ); for(var ii=0; ii<this.inr.length; ii++) { while(/<[^<>]+\:[^<>]+>/.test(this.inr[ii].n)) { this.inr[ii].n = this.inr[ii].n.replace(/<(\d+)\:([\d\.]+)>/,"%=%"); var tse = parseInt(RegExp.$1,10) * 60 + parseFloat(RegExp.$2); this.inr[ii].t[this.inr[ii].t.length] = tse-this.oTime; } lrcbc.innerHTML = "<font>"+ this.inr[ii].n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/%=%/g,"</font><font>") +" </font>"; var fall = lrcbc.getElementsByTagName("font"); for(var wi=0; wi<fall.length; wi++) this.inr[ii].w[this.inr[ii].w.length] = fall[wi].offsetWidth; this.inr[ii].n = lrcbc.innerText; } this.run = function(tme) { if(tme<this.dts || tme>=this.dte) { var ii; for(ii=this.inr.length-1; ii>=0 && this.inr[ii].t[0]>tme; ii--){} if(ii<0) return; this.ddh = this.inr[ii].t; this.fjh = this.inr[ii].w; this.dts = this.inr[ii].t[0]; this.dte = (ii<this.inr.length-1)?this.inr[ii+1].t[0]:Exobud.currentMedia.duration; lrcwt1.innerText = this.retxt(ii-10); lrcwt2.innerText = this.retxt(ii-9); lrcwt3.innerText = this.retxt(ii-8); lrcwt4.innerText = this.retxt(ii-7); lrcwt5.innerText = this.retxt(ii-6); lrcwt6.innerText = this.retxt(ii-5); lrcwt7.innerText = this.retxt(ii-4); lrcwt8.innerText = this.retxt(ii-3); lrcwt9.innerText = this.retxt(ii-2); lrcwt10.innerText = this.retxt(ii-1); lrcfilter.innerText = this.retxt(ii-1); lrcwt11.innerText = this.retxt(ii+1); lrcwt12.innerText = this.retxt(ii+2); lrcwt13.innerText = this.retxt(ii+3); lrcwt14.innerText = this.retxt(ii+4); lrcwt15.innerText = this.retxt(ii+5); lrcwt16.innerText = this.retxt(ii+6); lrcwt17.innerText = this.retxt(ii+7); lrcwt18.innerText = this.retxt(ii+8); lrcwt19.innerText = this.retxt(ii+9); this.print(this.retxt(ii)); if(this.dlt==ii-1) { clearTimeout(lrcO); golrcoll(0); golrcolor(0); } this.dlt = ii; } var bbw = 0; var ki; for(ki=0; ki<this.ddh.length && this.ddh[ki]<=tme; ki++) bbw += this.fjh[ki]; var kt = ki-1; var sc = ((ki<this.ddh.length)?this.ddh[ki]:this.dte) - this.ddh[kt]; var tc = tme - this.ddh[kt]; bbw -= this.fjh[kt] - tc / sc * this.fjh[kt]; if(bbw>lrcbox.offsetWidth) bbw = lrcbox.offsetWidth; lrcbc.style.width = Math.round(bbw); } this.retxt = function(i) { return (i<0 || i>=this.inr.length)?"":this.inr[i].n; } this.print = function(txt) { lrcbox.innerText = txt; lrcbc.innerText = txt; } this.print("Www.CuiZ.Net (翠竹网站)"); lrcwt1.innerText = ""; lrcwt2.innerText = ""; lrcwt3.innerText = ""; lrcwt4.innerText = ""; lrcwt5.innerText = ""; lrcwt6.innerText = ""; lrcwt8.innerText = ""; lrcwt9.innerText = ""; lrcwt10.innerText = ""; lrcwt11.innerText = ""; lrcwt12.innerText = ""; lrcwt13.innerText = ""; lrcwt14.innerText = ""; lrcwt15.innerText = ""; lrcwt16.innerText = ""; lrcwt17.innerText = ""; lrcwt18.innerText = ""; lrcwt19.innerText = ""; } function loadfile(url) { Exobud.url = url; Exobud.controls.play(); file.select(); document.selection.clear(); onfocus=file.blur(); } function bb() { ffbb = ffbb - 0.5; } function ff() { ffbb = ffbb + 0.5; } function lrcrun() { with(Exobud) { curobj.run(controls.currentPosition + ffbb); } } function golrcoll(s) { lrcoll.style.top = -2-(s++)*3; if(s<=6) lrcO = setTimeout("golrcoll("+s+")",100); } function golrcolor(t) { lrcfilter.filters.alpha.opacity = 100-(t++)*10; if(t<=10) setTimeout("golrcolor("+t+")",60); } function killErrors() { return true; } window.onerror = killErrors; function switchDisp(disptext) { curobj = new lrcClass(disptext); abc = setInterval("lrcrun()",10); } function MakeMovable(element) { element.attachEvent("onmousedown",onmousedown); element.attachEvent("onmouseup",onmouseup); element.attachEvent("onmousemove",onmousemove); flagmove = false; var s_y, o_y; curpot = 0; function onmousedown() { if(event.button!=1 || moveflag || !movable) {flagmove = true; return;} clearTimeout(lrc0); if(curdlt>0) lowcolor(eval("lrcbc"+curdlt)); lowcolor(eval("lrcbc"+(curdlt+1))); lowlight(eval("lrcbox"+(curdlt+1))); if(lrcoll.style.pixelTop>120) lrcoll.style.top = 120; if(lrcoll.style.pixelTop<-((lrcobj.inr.length-1)*20-120)) lrcoll.style.top = -((lrcobj.inr.length-1)*20-120); s_y = event.clientY; o_y = lrcoll.style.pixelTop; element.style.cursor = "n-resize"; element.setCapture(); moveflag = true; } function onmousemove() { if(event.button!=1 || !moveflag || flagmove) return; var offy = event.clientY-s_y; if(o_y+offy<=120 && o_y+offy>=-((lrcobj.inr.length-1)*20-120)) lrcoll.style.top = o_y+offy; if(o_y+offy>120) lrcoll.style.top = 120; if(o_y+offy<-((lrcobj.inr.length-1)*20-120)) lrcoll.style.top = -((lrcobj.inr.length-1)*20-120); var pot = Math.floor((lrcoll.style.pixelTop-120)/-20); if(pot!=curpot) { lowlight(eval("lrcbox"+(curpot+1))); curpot = pot; highlight(eval("lrcbox"+(curpot+1))); } } function onmouseup() { if(!moveflag || flagmove) {flagmove = false; return;} if(Exobud.playState==3) { if(lrcoll.style.pixelTop<=120 && lrcoll.style.pixelTop>100) lrcobj.dte = -1; else lrcobj.dte = lrcobj.inr[Math.floor((lrcoll.style.pixelTop-120)/-20)-1].t[0]; if(lrcobj.inr[Math.floor((lrcoll.style.pixelTop-120)/-20)].t[0]<0) Exobud.controls.currentPosition = 0; else Exobud.controls.currentPosition = lrcobj.inr[Math.floor((lrcoll.style.pixelTop-120)/-20)].t[0]; lrcobj.dlt = Math.floor((lrcoll.style.pixelTop-120)/-20); lrctop = lrcoll.style.pixelTop; } else { lowlight(eval("lrcbox"+(curpot+1))); highlight(eval("lrcbox"+(curdlt+1))); lrcoll.style.top = o_y; } lrc0 = setTimeout("lrcrun()",10); element.releaseCapture(); element.style.cursor = "hand"; moveflag = false; } } var _curMMSmi=""; </script> <script language="JScript" for="Exobud" event="currentItemChange()"> var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); }else { if (window.ActiveXObject) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (ee) { xmlhttp = new ActiveXObject("MSXML.XMLHTTP"); } } } function fnDo(){ if (_curMMSmi == "" || (_curMMSmi != "" && objMmInfo[cActIdx].mmSmi != _curMMSmi)) { xmlhttp.Open("GET", "LrcGet.asp?url="+objMmInfo[cActIdx].mmSmi, true); xmlhttp.onreadystatechange = fnRun; xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.Send(null); } _curMMSmi = objMmInfo[cActIdx].mmSmi; } function fnRun(){ var xmlDom = new ActiveXObject("Microsoft.XmlDom"); if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){ var myroot = bytes2BSTR(xmlhttp.responseBody); if (myroot != null){ switchDisp(myroot); }else{ switchDisp("[00:00.00]抱歉,暂无歌词![05:00.00]www.92design.cn"); } } } fnDo(); </script> <script language="VBScript"> Function bytes2BSTR(arrBytes) strReturn = "" arrBytes = CStr(arrBytes) For i = 1 To LenB(arrBytes) ThisCharCode = AscB(MidB(arrBytes, i, 1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(arrBytes, i+1, 1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next bytes2BSTR = strReturn End Function </script>