⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exobud.js

📁 用VB+JAVASCRIPT开发的一个仿QQ爱墙软件
💻 JS
📖 第 1 页 / 共 2 页
字号:
 }
}

// 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);
 }
}

// 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="不重複播放";
 } else {
   blnRept=true; imgChange('rept',1); disp2.innerHTML="重複播放";
 }
 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="循序播放";
 } else {
   blnRndPlay=true; imgChange('pmode',1); disp2.innerHTML="隨機播放";
 }
 tidMsg=setTimeout('rtnTLab()',1000);
}

// evtOSChg() 函式: 以彈出視窗方式顯示媒體檔案資訊
function evtOSChg(f){
//   以下是狀態值 (f) 的說明:
//    0(未定義)       8(轉換媒體中)   9(尋找媒體中)  10(連線媒體中)  11(載入媒體中)
//   12(開啟媒體中)  13(媒體已開啟)  20(等待播放中)  21(正在開啟不明的連結)

 if(f==8){capText.innerHTML="www.hx33.net MP(II) 字幕顯示系統(SMI)";}
 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 = "T" + 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 += "   Brought to you by ExoBUD MP(II).\n";
   strMmInfo += "   Copyright(C) 1999-2003 Jinwoong Yu.\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 = "嘗試連線 (" + intErrCnt + ")";
   var msg = "(嘗試第 " + intErrCnt + " 次連線) " + cActTit;
   disp1.innerHTML = "<無法播放> " + cActTit;
   if(blnStatusBar){ window.status=(msg);}
   tidErr=setTimeout('retryPlay()',1000);
 } else {
   clearTimeout(tidErr);
   intErrCnt=0;showTLab();
   var msg = "已放棄嘗試再連線。現在將會播放下一首曲目。";
   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 = "ExoBUD MP(II) v4.1tc+ [等待播放下一首曲目]";
 if(blnStatusBar){ window.status=('ExoBUD MP(II) v4.1tc+ [等待播放下一首曲目]');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 = cps + " | " + durs;
     var msg = cActTit + " (" + cps + " | " + durs + ")";
     if(ps==2){msg = "(暫停) " + msg;}
     if(blnStatusBar){ window.status=(msg);return true;}
   } else {
     var laps = dur-cp;
     var strLaps = wmpTime(laps);
     disp2.innerHTML = strLaps + " | " + durs;
     var msg = cActTit + " (" + strLaps + " | " + durs + ")";
     if(ps==2){msg = "(暫停) " + msg;}
     if(blnStatusBar){ window.status=(msg);return true;}
   }

 } else {
   disp2.innerHTML = "00:00 | 00:00";
 }
}

// chgTimeFmt() 函式: 變更時間長度的顯示方式
function chgTimeFmt(){
 var wmps = Exobud.playState;
 if(wmps==3){clearInterval(tidTLab);}
 if(blnElaps){
   blnElaps=false; disp2.innerHTML="倒數方式";
 } else {
   blnElaps=true; disp2.innerHTML="正常方式";
 }
 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;
}

// wmpVolUp(), wmpVolDn(), wmpMute() 這幾個都是用來調校音量的函式。(單位:%)
// vmax 代表最大音量(100), vmin 代表最小音量(0), vdep 代表調校音量的間隔(建議設為5至20之間)
// 您只可以在 vmin, vmax, vdep 設為0至100之間的整數數值,vmin 和 vdep 數值不可以大過 vmax。

var vmax = 100;
var vmin = 0;
var vdep = 10;

// wmpVolUp() 函式: 增加音量(Volume Up)
function wmpVolUp(){
 var wmps = Exobud.playState;
 if(wmps==3){clearInterval(tidTLab);}
 var ps = Exobud.settings;
 if(ps.mute){ps.mute=false; disp2.innerHTML="音量恢復"; imgChange('vmute',0);}
 else {
   if(ps.volume >= (vmax-vdep)){ps.volume = vmax;}
   else {ps.volume = ps.volume + vdep;}
   disp2.innerHTML = "音量: " + ps.volume + "%";
 }
 tidMsg=setTimeout('rtnTLab()',1000);
}

// wmpVolDn() 函式: 減少音量(Volume Down)
function wmpVolDn(){
 var wmps = Exobud.playState;
 if(wmps==3){clearInterval(tidTLab);}
 var ps = Exobud.settings;
 if(ps.mute){ps.mute=false; disp2.innerHTML="音量恢復"; imgChange('vmute',0);}
 else {
   if(ps.volume <= vdep){ps.volume = vmin;}
   else {ps.volume = ps.volume - vdep;}
   disp2.innerHTML = "音量: " + ps.volume + "%";
 }
 tidMsg=setTimeout('rtnTLab()',1000);
}

// 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="開啟靜音模式"; imgChange("vmute",1);
 } else {
   ps.mute=false; disp2.innerHTML="關閉靜音模式"; imgChange("vmute",0);
 }
 tidMsg=setTimeout('rtnTLab()',1000);
}

// waitMsg() 函式: 顯示因播放清單空白而無法播放的訊息
function waitMsg(){
 capText.innerHTML="ExoBUD MP(II) 字幕顯示系統(SMI)";
 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=120,left=320,width=280,height=420,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;
}

// vizExobud() 函式: 點選連到 ExoBUD MP 播放器原作者的官方網站[韓文] (不一定每款面板都會使用)
function vizExobud(){
// 使用範例: <span onClick="vizExobud()" style="cursor:hand" title="到訪 ExoBUD MP 原作者 Jinwoong Yu 的網站 [韓文]">
 window.open("http://www.hx33.net","vizExobud");
}

//-->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -