最近家中晚上經常斷網,通過下面的小程式(其實是我組合了兩個小程式寫的,談不上原創)可以實作聯網時通過播放音樂通知我,不過這其實是由自動訂票通知想到的,由于是上班時間寫的,是以這個程式還有很多不足的地方,不過已經能完成最基本的功能了:
<html>
<head>
<title>聯網自動提示器</title>
<SCRIPT language=JavaScript>
<!--
var millionsecond = 1000;//預設1秒鐘檢查一次
var media;
var player;
var exp;
var playPositionStart;
var totalTime;
function initMedia(url)
{
exp=getExp(url);
if(exp=="mp3" || exp=="wma")
{
var i_player_str = "<OBJECT id=\"player\" codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 type=application/x-oleobject height=0 standby=\"Loading Microsoft? Windows Media? Player components... \" width=0 classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6><PARAM NAME=\"URL\" VALUE=\""+url+"\"><PARAM NAME=\"UIMode\" VALUE=\"full\"><PARAM NAME=\"AutoStart\" VALUE=\"false\"><PARAM NAME=\"Enabled\" VALUE=\"true\"><PARAM NAME=\"enableContextMenu\" VALUE=\"false\"></OBJECT>";
}
else if(exp=="flv")
{
var i_player_str = "<OBJECT id=\"player\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=7,0,0,0\" WIDTH=0 HEIGHT=0><PARAM NAME=movie VALUE=\"swf/flvplayer.swf?url="+url+"\"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED name=\"player\" src=\"swf/flvplayer.swf?url="+url+"\" quality=high bgcolor=#FFFFFF WIDTH=0 HEIGHT=0 TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\"></EMBED></OBJECT>";
}
media=document.getElementById("media");
media.innerHTML=i_player_str;
playobj=document.getElementById("player");
}
//播放音樂
function doplay(){
if(exp=="mp3" || exp=="wma"){
playobj.controls.play();
}else if(exp=="flv"){
playobj.gotoFrame(7);
}
}
//得到檔案格式
function getExp(url){
var tmp=url.split('.');
return tmp[tmp.length-1];
}
//重寫String的trim方法
String.prototype.trim = function() {
return this.replace(/\s/g,"");
}
//傳回通路url的狀态結果
function getUrlState(URL){
if(URL.trim().length==0){
return false;
}
var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
xmlhttp.Open("GET",URL, false);
try{
xmlhttp.Send();
}catch(e){
}finally{
var result = xmlhttp.responseText;
if(result){
if(xmlhttp.Status==200){
return(true);
}else{
return(false);
}
}else{
return(false);
}
}
}
var timer ;
function startUrl(){
var mp3 = document.getElementById("music").value;
initMedia(mp3);
//每隔millionsecond執行一次
timer = window.setInterval("checkUrl()",millionsecond);
}
//檢查url,相當于ping,如果能ping通就登出Interval同時播放音樂
function checkUrl(){
if(getUrlState(document.getElementById("url").value)){
window.clearInterval(timer);
doplay();
}
}
//暫停播放
function stopMusic(){
playobj.controls.pause();
}
//-->
</SCRIPT>
</head>
<body>
<DIV id=media></DIV>
請選擇音樂:<input type="file" id="music" /><br/>
請輸入網址:<input type="text" value="http://www.baidu.com/" id="url" /><br/>
<input type="button" id="start" οnclick="startUrl()" value="開始測試">
<input type="button" id="start" οnclick="stopMusic()" value="停止音樂">
</body>
</html>