~~~~~~~播放頁(yè)面~~~~~~
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>ge520連播[www.]</title>
<link rel="stylesheet" type="text/css" href="exobud.css">
<!-- 加載 ExoBUD MP(II) 主程序 --> <script language="JavaScript" src="exobud.js"></script>
<!-- 加載 ExoBUD MP(II) 基本設(shè)定檔 --> <script language="JavaScript" src="exobudset.js"></script>
<!-- 加載 ExoBUD MP(II) 播放清單設(shè)定文件 --> <script language='JavaScript' src='exobudpl.asp?id=103234, 103205, 103203, 103167, 103166, 103165, 103164, 103163, 103056, 102986, 102921, 102854, 102826, 102626, 102442, 102425, 102422, 102385, 102292, 102291, 102176, 102175, 102174, 102173, 102172, 102112, 102111, 102107, 102003, 101896, 101891, 101890, 101889, 101888, 101887, 101659, 101423, 101421, 101420, 101416, 101408, 101381, 101352, 101339, 101338, 101337, 101336, 101335, 101222, 101220, 101198'></script>
<!-- 如果您不熟悉原始碼編輯,請(qǐng)勿隨便修改下面使用 JScript 的部份,否則可能會(huì)導(dǎo)致程序不能正常運(yùn)作 --> <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>
<!-- 加載「動(dòng)態(tài)按鈕圖文件切換」的 JavaScript 程序文件 --> <script language="JavaScript" src="imgchg.js"></script> </head>
<!-- 當(dāng)您將這個(gè)媒體播放器嵌入您的網(wǎng)站使用時(shí),建議預(yù)留 640~760px(像素) 的寬度 乘以 20~25px(像素) 的高度 (在不使用字幕功能的情況下) 來(lái)設(shè)計(jì)框架的內(nèi)容。 -->
<body onLoad="initExobud();" onDragStart="return false" onSelectStart="return false" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0 bgcolor="#C0C0C0" >
<span style="position: absolute; left: -2; top: -4">
<object id="Exobud" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" style="position:relative;left:0px;top:0px;width:475;height:2;"> <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="none"> <param name="volume" value="100"> </object> </span> <div><center><iframe src=http://www./js/lianxu.htm height=300 width=470 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no></iframe></center></div> <table width=470 height=25 align=center cellpadding=0 cellspacing=0 border=0> <tr> <td width=470 background="../img/bg.gif">
<table height=25 align=center cellpadding=0 cellspacing=0 border=0> <tr>
<!-- 顯示播放狀態(tài)的 Scope 動(dòng)態(tài)圖文件: 如果您想要變更這個(gè)圖檔,請(qǐng)同時(shí)參考及修改 imgchg.js 接近檔末的部份。 --> <td width=25 align=center > <img name="scope" src="./img/scope_off.gif" width=19 height=16 " align=" align="top" ></td>
<td width=11 background="./img/bg1l.gif"></td> <td width=75 background="./img/bg1c.gif">
<!-- 顯示媒體標(biāo)題的方塊: 本面板播放器使用跑馬燈(marquee)的方式顯示媒體標(biāo)題,所以您不用擔(dān)心因?yàn)闃?biāo)題過(guò)長(zhǎng)而不能完整顯示。 您可以根據(jù)個(gè)人喜好來(lái)設(shè)定跑馬燈的屬性,包括跑動(dòng)方式(behavior)及跑動(dòng)速度(scrollamount,scrolldelay)。 --> <marquee behavior="scroll" width=75 height=12 scrollamount=2 scrolldelay=70 style="padding-bottom:2px"> <span id="disp1" class="title">Hi01 網(wǎng)站媒體播放程序</span></marquee>
</td> <td width=11 background="./img/bg1r.gif"></td> <td width=11 background="./img/bg2l.gif"></td> <td width=105 align=center background="./img/bg2c.gif" nowrap onClick="chgTimeFmt()">
<!-- 顯示時(shí)間長(zhǎng)度的方塊: 假如媒體的時(shí)間長(zhǎng)度超過(guò)一小時(shí),請(qǐng)將 width 的數(shù)值適當(dāng)?shù)卦黾樱钚畔⒖梢燥@示得完整。 --> <span id="disp2" class="time" title="時(shí)間長(zhǎng)度顯示方式 (正常/倒數(shù))" style="width:105;cursor:hand;padding-bottom:2px">00:00 | 00:00</span>
</td> <td width=11 background="./img/bg2r.gif"></td> <td width=5></td>
<td nowrap>
<!-- 播放器控制面板上的所有按鈕: 如果您想要變更這些圖檔,請(qǐng)同時(shí)參考及修改 imgchg.js 這個(gè)檔案的內(nèi)容。 --> <img name="vmute" src="./img/btn_mute_off.gif" width=15 height=25 border=0 onClick="wmpMute()" onMouseOver="imgtog('vmute',2)" onMouseOut="imgtog('vmute',3)" style="cursor:hand" title="靜音模式" ><img name="vdn" src="./img/btn_vdn.gif" width=15 height=25 border=0 onClick="wmpVolDn()" onMouseOver="imgtog('vdn',2)" onMouseOut="imgtog('vdn',3)" style="cursor:hand" title="減少音量" ><img name="vup" src="./img/btn_vup.gif" width=15 height=25 border=0 onClick="wmpVolUp()" onMouseOver="imgtog('vup',2)" onMouseOut="imgtog('vup',3)" style="cursor:hand" title="增加音量">
<img name="pmode" src="./img/btn_rndmode_off.gif" width=15 height=25 border=0 onClick="chgPMode()" onMouseOver="imgtog('pmode',2)" onMouseOut="imgtog('pmode',3)" style="cursor:hand" title="播放順序 (S=循序 R=隨機(jī))" ><img name="rept" src="./img/btn_rept_off.gif" width=15 height=25 border=0 onClick="chkRept()" onMouseOver="imgtog('rept',2)" onMouseOut="imgtog('rept',3)" style="cursor:hand" title="切換是否重復(fù)播放目前的曲目">
<img name="prevt" src="./img/btn_prev.gif" width=24 height=25 border=0 onClick="playPrev()" onMouseOver="imgtog('prevt',2)" onMouseOut="imgtog('prevt',3)" style="cursor:hand" title="上一首曲目" ><img name="pauzt" src="./img/btn_pauz_off.gif" width=24 height=25 border=0 onClick="wmpPP()" onMouseOver="imgtog('pauzt',2)" onMouseOut="imgtog('pauzt',3)" style="cursor:hand" title="暫停.繼續(xù)" ><img name="stopt" src="./img/btn_stop.gif" width=24 height=25 border=0 onClick="wmpStop()" onMouseOver="imgtog('stopt',2)" onMouseOut="imgtog('stopt',3)" style="cursor:hand" title="停止" ><img name="playt" src="./img/btn_play.gif" width=24 height=25 border=0 onClick="startExobud()" onMouseOver="imgtog('playt',2)" onMouseOut="imgtog('playt',3)" style="cursor:hand" title="播放" ><img name="nextt" src="./img/btn_next.gif" width=24 height=25 border=0 onClick="playNext()" onMouseOver="imgtog('nextt',2)" onMouseOut="imgtog('nextt',3)" style="cursor:hand" title="下一首曲目">
<img name="plist" src="./img/btn_plist.gif" width=24 height=25 border=0 onClick="openPlist()" onMouseOver="imgtog('plist',2)" onMouseOut="imgtog('plist',3)" style="cursor:hand" title="顯示播放清單內(nèi)容"> <a target="_top" href="http://www./index.asp"> <img name="exit" src="./img/btn_exit.gif" width=15 height=25 border=0 onClick="window.close()" onMouseOver="imgtog('exit',2)" onMouseOut="imgtog('exit',3)" style="cursor:hand" title="退出/Exit"></a>
</td> </tr> </table>
</td> </tr> <tr> <td height=0>
<!-- 顯示字幕框的部份: 如果您想要使用字幕功能,您便需要預(yù)留頁(yè)面一些空間用來(lái)顯示這個(gè)字幕框。 無(wú)論您是否使用字幕功能,請(qǐng)勿隨便修改或刪除下面這段 DIV 區(qū)塊的語(yǔ)法。 --> <div id="capText" style="width:100%;height:60;color:white;background-color:#555555;padding-top:3px;padding-left:5px;display:none" >ExoBUD MP(II) 字幕顯示系統(tǒng)(SMI)</div>
</td> </tr> </table>
</body> </html>
~~~~~~~播放器js源碼~~~~~~~~
exobud.js
<!--
var objMmInfo = null; var intMmCnt = 0; var intSelMmCnt = 0; var intActMmCnt = 0; var cActIdx = 0; var cActTit = "nAnT"; var strMmInfo = "ExoBUD 媒體檔案信息";
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;
// 這是「自動(dòng)連續(xù)播放」的設(shè)定。一般來(lái)說(shuō),播放一首音樂(lè)完畢后就會(huì)自動(dòng)跳到下一首。 // 但是如果您要播放的媒體是視訊檔案(例如:MV)的話(huà),最好將這個(gè)設(shè)定值改為 false 。 // true = 自動(dòng)連續(xù)播放 // false = 不要自動(dòng)連續(xù)播放,讓使用者自行挑選下一首曲目 var blnAutoProc = true;
// 設(shè)定播放面板上所顯示的時(shí)間長(zhǎng)度,預(yù)設(shè)是以正常方式(Elapse)抑或倒數(shù)方式(Lapse)顯示: // true = 以正常方式顯示時(shí)間長(zhǎng)度,即動(dòng)態(tài)地顯示曲目已播放的時(shí)間 // false = 以倒數(shù)方式顯示時(shí)間長(zhǎng)度,即動(dòng)態(tài)地顯示曲目剩余的時(shí)間 var blnElaps = true;
// 設(shè)定播放每首曲目之間的延遲時(shí)間(Delay Time),單位是毫秒(msec)。 // 每100毫秒代表0.1秒,默認(rèn)值是500毫秒(即0.5秒),最少也要設(shè)為100毫秒。 var intDelay = 500;
// wmpInit() 函式: 使用 wmp-obj v7.x 鏈接庫(kù)建立環(huán)境設(shè)定 function wmpInit(){ var wmps = Exobud.settings; var wmpc = Exobud.ClosedCaption;
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() 函式: 準(zhǔn)備建立 Multi-object 的數(shù)組 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 的數(shù)組 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() 函式: 建立已選取播放項(xiàng)目(Selected Media)的數(shù)組 function mkSel(){ arrSelMm = null; intSelMmCnt = 0; var selidx = 0;
if(intMmCnt<=0){intExobudStat=1; blnEnabled=false; return;} // 沒(méi)有任何播放清單項(xiàng)目
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() 函式: 建立已啟用播放項(xiàng)目(Activated Media)的數(shù)組 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() 函式: 全部選取所有的播放清單項(xiàng)目 function chkAllSel(){ for(var i=0; i<intMmCnt; i++){ objMmInfo[i].selMm="t"; objMmInfo[i].actMm="t"; } mkSel(); }
// chkAllDesel() 函式: 不選取所有的播放清單項(xiàng)目 function chkAllDesel(){ for(var i=0; i<intMmCnt; i++){ objMmInfo[i].selMm="f"; objMmInfo[i].actMm="f"; } mkSel(); }
// chkItemSel() 函式: 選取或不選取播放清單項(xiàng)目 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() 函式: 將某個(gè)已啟用播放項(xiàng)目(Activated Media)凍結(jié) function chkItemAct(idx){ objMmInfo[idx].actMm="f"; mkAct(); }
// mkSelAct() 函式: 將已選取播放項(xiàng)目(Selected Media)加入到已啟用播放項(xiàng)目(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(II) 媒體播放程序 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 = "QQ14音樂(lè)網(wǎng)網(wǎng)站媒體播放器"; if(blnStatusBar){ window.status=('QQ14音樂(lè)網(wǎng)網(wǎng)站媒體播放器');} if(blnAutoStart){startExobud();} }
// startExobud() 函式: 開(kāi)始播放曲目 function startExobud(){ var wmps = Exobud.playState; if(wmps==2){Exobud.controls.play(); 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);} }
// selMmPlay() 函式: 處理媒體標(biāo)題 function selMmPlay(idx){ clearTimeout(tidErr); cActIdx=idx; var trknum=idx+1; var ctit =objMmInfo[idx].mmTit; if(ctit=="nAnT"){ctit="(沒(méi)有媒體標(biāo)題)"} if(blnUseSmi){Exobud.ClosedCaption.SAMIFileName = objMmInfo[idx].mmSmi;} Exobud.URL = objMmInfo[idx].mmUrl; cActTit = "T" + trknum + ". " + ctit; disp1.innerHTML = cActTit; if(blnStatusBar){ window.status=(cActTit);} chkItemAct(cActIdx); }
// wmpPlay() 函式: 使用 wmp-obj v7.x 鏈接庫(kù)播放曲目 function wmpPlay(){Exobud.controls.play();}
// wmpStop() 函式: 停止播放曲目及顯示「就緒」?fàn)顟B(tài)訊息 function wmpStop(){ intErrCnt=0; clearTimeout(tidErr); clearInterval(tidTLab); imgChange("stopt",1); imgChange("pauzt",0); imgChange("scope",0); showTLab(); mkSelAct(); Exobud.controls.stop(); Exobud.close(); disp1.innerHTML = "QQ14音樂(lè)網(wǎng)網(wǎng)站媒體播放器 [就緒]"; if(blnStatusBar){ window.status=('QQ14音樂(lè)網(wǎng)網(wǎng)站媒體播放器 [就緒]');return true;} }
// wmpPause() 函式: 使用 wmp-obj v7.x 鏈接庫(kù)暫停播放曲目 function wmpPause(){Exobud.controls.pause();}
// wmpPP() 函式: 在暫停播放和繼續(xù)播放之間進(jìn)行切換 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="暫停"; tidMsg=setTimeout('rtnTLab()',1500);} return; }
// rndPlay() 函式: 隨機(jī)播放(Random Play)的運(yùn)算方式 function rndPlay(){ if(!blnEnabled){waitMsg();return;} intErrCnt=0; var idx=Math.floor(Math.random() * intActMmCnt); cActIdx=arrActMm[idx]; selMmPlay(cActIdx); }
|