~~~~~~~播放頁面~~~~~~
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ge520連播[www.ge520.com]</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>
<!-- 如果您不熟悉原始碼編輯,請勿隨便修改下面使用 JScript 的部份,否則可能會導(dǎo)致程序不能正常運作 -->
<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>
<!-- 加載「動態(tài)按鈕圖文件切換」的 JavaScript 程序文件 -->
<script language="JavaScript" src="imgchg.js"></script>
</head>
<!-- 當(dāng)您將這個媒體播放器嵌入您的網(wǎng)站使用時,建議預(yù)留 640~760px(像素) 的寬度
乘以 20~25px(像素) 的高度 (在不使用字幕功能的情況下) 來設(shè)計框架的內(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.ge520.com/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 動態(tài)圖文件:
如果您想要變更這個圖檔,請同時參考及修改 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)心因為標(biāo)題過長而不能完整顯示。
您可以根據(jù)個人喜好來設(shè)定跑馬燈的屬性,包括跑動方式(behavior)及跑動速度(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()">
<!-- 顯示時間長度的方塊:
假如媒體的時間長度超過一小時,請將 width 的數(shù)值適當(dāng)?shù)卦黾?,令信息可以顯示得完整。 -->
<span id="disp2" class="time" title="時間長度顯示方式 (正常/倒數(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>
<!-- 播放器控制面板上的所有按鈕:
如果您想要變更這些圖檔,請同時參考及修改 imgchg.js 這個檔案的內(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="<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ù)留頁面一些空間用來顯示這個字幕框。
無論您是否使用字幕功能,請勿隨便修改或刪除下面這段 DIV 區(qū)塊的語法。 -->
<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;
// 這是「自動連續(xù)播放」的設(shè)定。一般來說,播放一首音樂完畢后就會自動跳到下一首。
// 但是如果您要播放的媒體是視訊檔案(例如:MV)的話,最好將這個設(shè)定值改為 false 。
// true = 自動連續(xù)播放
// false = 不要自動連續(xù)播放,讓使用者自行挑選下一首曲目
var blnAutoProc = true;
// 設(shè)定播放面板上所顯示的時間長度,預(yù)設(shè)是以正常方式(Elapse)抑或倒數(shù)方式(Lapse)顯示:
// true = 以正常方式顯示時間長度,即動態(tài)地顯示曲目已播放的時間
// false = 以倒數(shù)方式顯示時間長度,即動態(tài)地顯示曲目剩余的時間
var blnElaps = true;
// 設(shè)定播放每首曲目之間的延遲時間(Delay Time),單位是毫秒(msec)。
// 每100毫秒代表0.1秒,默認(rèn)值是500毫秒(即0.5秒),最少也要設(shè)為100毫秒。
var intDelay = 500;
// wmpInit() 函式: 使用 wmp-obj v7.x 鏈接庫建立環(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() 函式: 建立已選取播放項目(Selected Media)的數(shù)組
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)的數(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() 函式: 全部選取所有的播放清單項目
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)凍結(jié)
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(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音樂網(wǎng)網(wǎng)站媒體播放器";
if(blnStatusBar){ window.status=('QQ14音樂網(wǎng)網(wǎng)站媒體播放器');}
if(blnAutoStart){startExobud();}
}
// startExobud() 函式: 開始播放曲目
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="(沒有媒體標(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 鏈接庫播放曲目
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音樂網(wǎng)網(wǎng)站媒體播放器 [就緒]";
if(blnStatusBar){ window.status=('QQ14音樂網(wǎng)網(wǎng)站媒體播放器 [就緒]');return true;}
}
// wmpPause() 函式: 使用 wmp-obj v7.x 鏈接庫暫停播放曲目
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)的運算方式
function rndPlay(){
if(!blnEnabled){waitMsg();return;}
intErrCnt=0;
var idx=Math.floor(Math.random() * intActMmCnt);
cActIdx=arrActMm[idx];
selMmPlay(cActIdx);
}