?? exobud.js
字號:
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="ExoBUD 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 = "[等待播放下一首曲目]";
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 = 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=480,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://exobud.nayana.org","vizExobud");
}
//-->
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -