最近家中晚上经常断网,通过下面的小程序(其实是我组合了两个小程序写的,谈不上原创)可以实现联网时通过播放音乐通知我,不过这其实是由自动订票通知想到的,由于是上班时间写的,所以这个程序还有很多不足的地方,不过已经能完成最基本的功能了:
<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>