📄 exobud.js
字号:
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="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 = "ExoBUD Media Player [LyBBS] [等待播放下一首曲目]";
if(blnStatusBar){ window.status=('ExoBUD Media Player [LyBBS] [等待播放下一首曲目]');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 + -