» 您尚未 登录   注册 | 社区服务 | 在线音乐 | 帮助 | 转贴工具 | 社区 | 无图版

五颜六色论坛 -> 网站建设 -> 马政永做的在线播放器,带lrc歌词同步功能
 XML   RSS 2.0   WAP 

常州五颜六色网络技术有限公司 五颜六色网 五颜六色网-Flash欣赏 五颜六色-在线音乐
五颜六色网诚聘市场营销人员(全职) 本论坛QQ群8375513,欢迎加入

--> 本页主题: 马政永做的在线播放器,带lrc歌词同步功能 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
deserts


头衔:5y6s Inc.5y6s Inc.
该用户目前不在线
级别: 总版主
精华: 6
发帖: 12506
威望: 58 点
金钱: 6793 RMB
贡献值: 75 点
朋友圈: 男人俱乐部
在线时间:2624(小时)
注册时间:2004-09-12
最后登录:2008-10-11
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子


马政永做的在线播放器,带lrc歌词同步功能

演示地址:http://ae.lovemycn.com/mzymusic/play.htm

完整源码下载地址:http://www.lovemycn.com/index.asp?job=vtp&id=20060772311171438

// 内容开始 ---------------------------------------------

1. mzyplay.css 文件内容
.butt{color: #FFFFFF; font-weight: bold;border:#006666 1px solid; padding-top:2px;font-size:12px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#99CC00,endColorStr=#336600);}
.tabbj{color: #000000;border:#006666 1px solid; padding: 4px;font-size:12px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#99CC00,endColorStr=#336600);}
.xxl{width:98%;color:#993300;border:#006666 1px solid; padding: 4px;font-size:12px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#336600,endColorStr=#CCCC00);}
.rclbj{background-color: #000000; color: #00FF00; border: 1 groove #C0C0C0; padding: 4;font-size: 12px; font-family: 宋体; line-height: 200%; word-spacing: 1;}
.impor{letter-spacing: 1; padding: 4;font-size: 14px;color: #00FF00;filter:glow(color=#0099CC,strength=10);}
.barstyle{position:relative;width:214px; height:2px; z-index:1; background-color: #336600;}
.handstyle{font-size:12px;color:#336600;cursor: w-resize;position:absolute; width:8px; height:9px; z-index:1; top:-4px;filter: DropShadow(Color=#000000, OffX=2, OffY=1, Positive=1);}
.tabbja{color: #000000;border:#006666 1px solid; padding: 0px;font-size:12px;FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#99CC00,endColorStr=#336600);}

2.play.htm 文件内容
<html>

<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<link href='mzyplay.css' rel='stylesheet' type='text/css'>
<title>MZYPLAY</title>
</head>
<script language=javascript src='mzylrc.js'></script>
<body topmargin='0' leftmargin='0'>
<p><textarea name='S1' height='0' border='0' style='visibility:hidden;position: absolute; left: 0; top: 0; width: 0;'>
[ti:秋天不回来]
[ar:王强]
[al:秋天不回来]
[by:yanjingang]
[offset:500]
[00:02.77]秋天不回来  
[00:07.63] 歌手:王强 专辑:秋天不回来
[00:14.22] 初秋的天,冰冷的夜
[00:17.20]回忆慢慢袭来
[00:20.41]真心的爱就像落叶
[00:23.38]为何却要分开
[02:01.49][00:26.64]灰色的天独自彷徨
[02:05.00][00:29.62]城市的老地方
[02:07.40][00:32.64]真的孤单走过忧伤
[02:11.00][00:35.54]心碎还要逞强
[02:14.00][00:38.70]想为你披件外衣
[02:16.48][00:41.37]天凉要爱惜自己
[02:21.00][00:44.71]没有人比我更疼你
[02:26.19][00:50.79]告诉你在每个
[02:29.01][00:53.95]想你的夜里
[02:33.52][00:58.05]我哭的好无力
[03:32.63][03:04.08][02:38.50][01:02.96]就让秋风带走我的思念
[03:37.58][03:08.24][02:41.92][01:06.32]带走我的泪
[03:39.41][03:10.95][02:44.63][01:08.98]我还一直静静守候在
[03:44.01][03:14.34][02:47.94][01:12.57]相约的地点
[03:16.68][02:50.60][01:15.37]求求老天淋湿我的双眼
[03:20.46][02:54.04][01:18.68]冰冻我的心
[03:23.12][02:56.33][01:21.41]让我不再苦苦奢求你还
[03:26.45][01:24.49]回来我身边 我身边
[01:33.14]
[02:59.98]回来我身边
</textarea></p>
<div id='dplay' name='dplay'></div>
<script language=javascript>drawplaybox('http://bbs.asroad.com/images/upload/2006/06/01/162525.wma');</script>
<script language=javascript>lrcplaybox(S1.value);window.setTimeout('ck();',1000);</script>

</body>

3.mzylrc.js 文件内容

// 马政永做的在线播放器,带lrc歌词同步功能
//''''===============================================''''
//''''           线播放器             ''''
//''''   本函数库作者:马政永,内蒙古阿拉善       ''''
//''''作者主页:www.lovemycn.com or als.lovemycn.com ''''
//''''作者邮箱:mzymcm@yahoo.com.cn Phone:13947490036''''
//''''                               ''''
//''''   免费提供使用,但不要去版权信息         ''''
//''''                               ''''
//'''' 马政永做的在线播放器,带lrc歌词同步功能     ''''
//''''-----------------------------------------------''''

var playbox,lrcbox,playstarxx,lrc_gc,temti,temp,jybz,playendtime;
lrc_gc   = new Array(new Array());
temp   = new Array();
temti   =0;
jybz   =0;
playendtime=0;
var timeid=1;
var maxtimeid=200;
var dx;
var n;
// 画播放器
function drawplaybox(playfileurl)
{
playbox="";
playbox=playbox+"<table border='0' width='300' height='100' cellspacing='0' cellpadding='0' class='rclbj'><tr><td width='100%' ID='RCLRQ' NAME='RCLRQ' align='center'></td></tr></table>";
playbox=playbox+"<table border='0' width='300' cellspacing='0' cellpadding='0' class='tabbja'><tr><td width='260' valign='middle' align='center'>";
playbox=playbox+"<div id='bar' class='barstyle' valign='middle' align='left'><div id='handle' onmousedown='dragstart();' onmousemove='dragslide();' onmouseup='dragend();' class='handstyle'>▲</div></div>";
playbox=playbox+"</td><td width='40' valign='middle' align='center'>";
playbox=playbox+"<input type='text' name='T_jdt' class='xxl' ReadOnly>";
playbox=playbox+"</td></tr></table>";
playbox=playbox+"<table border='0' width='300' cellspacing='0' class='tabbj'><tr><td width='100%' valign='middle' align='center'>";
playbox=playbox+"<marquee scrollamount='1' scrolldelay='80' class='xxl' title='马政永做的在线播放器,带lrc歌词同步功能 http://www.lovemycn.com '><div ID='PLAYXX' NAME='PLAYXX'></div></marquee></td>";
playbox=playbox+"<td valign='middle' align='center'><input type='button' value='▲' name='B_play' class='butt' title='播放' OnClick='MZYPLAY.controls.play();buttonzt(this.name);'></td>";
playbox=playbox+"<td valign='middle' align='center'><input type='button' value='□' name='B_stop' class='butt' title='暂停' OnClick='MZYPLAY.controls.pause();buttonzt(this.name);'></td>";
playbox=playbox+"<td valign='middle' align='center'><input type='button' value='◎' name='B_sound' class='butt' title='静音' OnClick='pr_jy();'></td>";
playbox=playbox+"<td valign='middle' align='center'><input type='button' value='↑' name='B_add' class='butt' title='加大音量' OnClick='pr_yl_d(10);'></td>";
playbox=playbox+"<td valign='middle' align='center'><input type='button' value='↓' name='B_des' class='butt' title='减小音量' OnClick='pr_yl_d(-10);'></td>";
playbox=playbox+"</tr></table>";
playbox=playbox+"<object classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6' id='MZYPLAY' name='MZYPLAY' width='0' height='0' border='0' style='visibility:hidden;position: absolute; left: 0; top: 0; width: 0; height: 0; z-index: 0'>";
playbox=playbox+"<param name='URL' value='"+playfileurl+"'>";
playbox=playbox+"<param name='autoStart' value='0'>";
playbox=playbox+"<param name='volume' value='100'>";
playbox=playbox+"</object>";
dplay.innerHTML=playbox;
}

// 按钮初始化
function buttonzt(name)
{
B_play.disabled=false;
B_stop.disabled=false;
if (name=='B_play'){B_play.disabled=true;}
if (name=='B_stop'){B_stop.disabled=true;}
}

// 画歌词的容器
function lrcplaybox(lrctxt)
{
lrctxt = lrctxt.replace(/\[\:\][^$\n]*(\n|$)/g,"$1");
lrctxt = lrctxt.replace(/\[[^\[\]\:]*\]/g,"");
lrctxt = lrctxt.replace(/\[[^\[\]]*[^\[\]\d]+[^\[\]]*\:[^\[\]]*\]/g,"");
lrctxt = lrctxt.replace(/\[[^\[\]]*\:[^\[\]]*[^\[\]\d\.]+[^\[\]]*\]/g,"");
lrctxt = lrctxt.replace(/<[^<>]*[^<>\d]+[^<>]*\:[^<>]*>/g,"");
lrctxt = lrctxt.replace(/<[^<>]*\:[^<>]*[^<>\d\.]+[^<>]*>/g,"");
lrctxt = lrctxt.replace(/\n/g,"<br>");
lrcbox="<div id='lrclina' name='lrclina'></div><div id='lrclinb' name='lrclinb'></div><div id='lrclinc' name='lrclinc'></div>";
RCLRQ.innerHTML=lrcbox;
fgjm(lrctxt);
}

// 将播放器的音量增大或减小
function pr_yl_d(sz){
MZYPLAY.settings.volume=MZYPLAY.settings.volume+sz;
}
// 播放器静音或放音
function pr_jy(){
if (jybz=='0'){MZYPLAY.settings.Mute='-1';jybz='-1';}
else{MZYPLAY.settings.Mute='0';jybz='0';}
}


// 处理歌词
function fgjm(stringlrc)
{
var alltemp_split = stringlrc.split("<br>");
var allgc=new Array(),vi;
vi=0;
for (loop=0; loop < alltemp_split.length; loop++)
{if (alltemp_split[loop].length > 1 )
  {
  allgc[vi]=alltemp_split[loop];
  vi++;
  }
}
vi=0;
for (loop=0; loop < allgc.length; loop++)
{
var temp_split=allgc[loop].split("]");
var tteemm=temp_split[temp_split.length-1]
for (i=0; i < temp_split.length-1; i++)
  { temp[0]='';temp[1]='';
  var timetemp=temp_split
  timetemp=timetemp.replace(/\[/g,"");
  timetemp=timetemp.replace(/\]/g,"");
  var ata=timetemp.split(":");
  var ata_mi=ata[0];
  var ata_searr=ata[1];
  var searstr;
  if (ata_searr.search(".") < 1)
    {
    ata_searr=ata_searr+".0";
    }
  searstr=ata_searr.split(".");
  var ata_se=searstr[0];
  var ata_seh=searstr[1];
  var ata_m=parseFloat(ata_mi)*6000 +parseFloat(ata_se)*100 + parseFloat(ata_seh);
  var tempata=Math.round(ata_m);
  var strtempata=tempata.toString();
  var tempws="0000000000";
  strtempata=tempws.substr(strtempata.length)+strtempata;
  temp[0]=strtempata;
  temp[1]=tteemm;
  lrc_gc[vi]=[temp[0],temp[1]];
  vi++;
  }
}
lrc_gc.sort();
}

//排序定义
var pxa=2;
var pxb=1;
function order(pxa, pxb) {
if (pxa>pxb) {
return -1;
//表示a排在b的前面
} else if (pxa<pxb) {
return 1;
//表示a排在b的后面
} else {
return 0;
//表示相同的不进行排序
}
}


// 测试播放器状态
function ck()
{
playstarxx=MZYPLAY.playState;
if (playstarxx==10) {PLAYXX.innerHTML="准备就绪";}
if (playstarxx==9) {PLAYXX.innerHTML="正在连接到媒体";}
if (playstarxx==8) {PLAYXX.innerHTML="已播放完毕";orig();}
if (playstarxx==7) {PLAYXX.innerHTML="等待中";}
if (playstarxx==6) {PLAYXX.innerHTML="缓冲处理中";sgcid();}
if (playstarxx==5) {PLAYXX.innerHTML="向后搜索";}
if (playstarxx==4) {PLAYXX.innerHTML="向前搜索";}
if (playstarxx==3) {PLAYXX.innerHTML="正在播放中"; listlrctxt();}
if (playstarxx==2) {PLAYXX.innerHTML="已暂停播放";}
if (playstarxx==1) {PLAYXX.innerHTML="已停止播放";orig();}
if (playstarxx==0) {PLAYXX.innerHTML="";}
playendtime=MZYPLAY.currentMedia.duration;
window.setTimeout('ck();',100);
}

// 初始化
function orig()
{
lrclina.innerHTML="";
lrclinb.innerHTML="";
lrclinc.innerHTML="";
temti=0;
}

// 查找歌词ID点
function sgcid()
{
var yit=parseFloat(readplaytime(MZYPLAY.controls.currentPosition));
for (loop=0; loop < lrc_gc.length; loop++)
{
if ( yit >= parseFloat(lrc_gc[loop][0]));
temti=loop;
break;
}
}

// 显示歌词
function listlrctxt()
{
var cp_cpbt=MZYPLAY.currentmedia.getiteminfo('Album');
var cp_ysj=MZYPLAY.currentmedia.getiteminfo('Artist');
var cp_zuozhe=MZYPLAY.currentmedia.getiteminfo('author');
var cp_bt=MZYPLAY.currentmedia.getiteminfo('title');
var cp_zt=MZYPLAY.currentmedia.getiteminfo('subject');
PLAYXX.innerHTML='唱片标题:'+cp_cpbt+' 艺术家:'+cp_ysj+' 作者:'+cp_zuozhe+' 标题:'+cp_bt+' 主题:'+cp_zt;
var nowcurr=MZYPLAY.controls.currentPosition;
var Nowplaytime=parseFloat(readplaytime(nowcurr));
playendtime=MZYPLAY.currentMedia.duration;
var Endplaytime=parseFloat(readplaytime(playendtime));

handle.style.left=parseInt((200/playendtime) * nowcurr);
T_jdt.value=parseInt(nowcurr);

var NowGCtime;
if (temti < lrc_gc.length){ NowGCtime =parseFloat(lrc_gc[temti][0]);}
var NowGCnext;
if (temti < lrc_gc.length-2)
  {
  NowGCnext =parseFloat(lrc_gc[temti+1][0]);
  }
else
  { NowGCnext =Endplaytime; }
if ((Nowplaytime >= NowGCtime) && (Nowplaytime < NowGCnext))
  {
  if (temti>0){lrclina.innerHTML=lrc_gc[temti-1][1];}
  lrclinb.innerHTML="<table border='0' width='100%' cellspacing='0' cellpadding='0'><tr><td width='100%' class='impor' align='center'>"+lrc_gc[temti][1]+"</td></tr></table>";
  lrclinc.innerHTML="";
  if (temti<lrc_gc.length-2){lrclinc.innerHTML=lrc_gc[temti+1][1];}
  temti=temti+1;
  }
}

// 读取时间
function readplaytime(jdtime)
{
var mi=Math.floor(jdtime/60)%60;
var se=Math.floor(jdtime%60);
var hse=Math.floor(jdtime*100-mi*60*100-se*100);
var oksj=mi.toString()+":"+se.toString()+"."+hse.toString();
var ata=oksj.split(":");
var ata_mi=ata[0];
var ata_searr=ata[1];
var searstr;
if (ata_searr.search(".") < 1)
  {
  ata_searr=ata_searr+".0";
  }
searstr=ata_searr.split(".");
var ata_se=searstr[0];
var ata_seh=searstr[1];
var ata_m=parseFloat(ata_mi)*6000 +parseFloat(ata_se)*100 + parseFloat(ata_seh);
var tempata=Math.round(ata_m);
return tempata.toString();
}


function MM_reloadPage(init) {
if (init==true) with (navigator) {
  if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
  document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage;
  }}else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function dragslide()
{
if (n==1)
{
  var x=document.body.scrollLeft+event.clientX;
  if ((x-dx)<maxtimeid&&(x-dx)>0)
  {
  handle.style.left=x-dx;
  timeid=x-dx;
  }else if ((x-dx)>maxtimeid)
  {
  handle.style.left=maxtimeid;
  timeid=maxtimeid;
  } else if ((x-dx)<1)
  {
  handle.style.left=1;
  timeid=1;
  }
  var dwz=parseInt((playendtime/200) * timeid);
  T_jdt.value=parseInt(dwz);
  dwwz(dwz);
}
}

function dragstart() {
n=1;
dx=document.body.scrollLeft+event.clientX-handle.offsetLeft;
handle.setCapture();
}

function dragend() {
n=0;
handle.releaseCapture();
}

// 定位
function dwwz(wz) {
ndidz=parseFloat(readplaytime(wz));
for (loop=0; loop < lrc_gc.length; loop++)
{
if (parseFloat(lrc_gc[loop][0])>= ndidz){
  temti=loop;
  MZYPLAY.controls.currentPosition=wz;
  break;
  }
}
}
// 马政永做的在线播放器,带lrc歌词同步功能
//''''===============================================''''
//''''           线播放器             ''''
//''''   本函数库作者:马政永,内蒙古阿拉善       ''''
//''''作者主页:www.lovemycn.com or als.lovemycn.com ''''
//''''作者邮箱:mzymcm@yahoo.com.cn Phone:13947490036''''
//''''                               ''''
//''''   免费提供使用,但不要去版权信息         ''''
//''''                               ''''
//'''' 马政永做的在线播放器,带lrc歌词同步功能     ''''
//''''-----------------------------------------------''''

m1732006-7-7 15:33 歌词做成滚动那种会更好
helgqun2006-7-9 01:14 可以参考mp3.baidu.com,里面的试听有歌词滚动功能

[楼 主] | Posted: 2006-11-05 15:22 顶端
吸血狼王

终身成就奖
头衔:抽筋专家o.︷抽筋专家o.︷
该用户目前不在线
级别: 贵宾
精华: 10
发帖: 6241
威望: 111 点
金钱: 2 RMB
贡献值: 0 点
朋友圈: 18禁SEX圈
在线时间:414(小时)
注册时间:2005-12-17
最后登录:2008-08-22
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子


歌太老
[1 楼] | Posted: 2006-11-05 15:45 顶端

五颜六色论坛 -> 网站建设



[ 五颜六色网 ]
Copyright © 2003-2008 5y6s.net 苏ICP备05001866号 Powered by PHPWind 5.0.1
会员言论不代表本站立场 本站法律顾问:北京汇泽律师事务所 韩律师
Total 0.121243(s) query 5, Gzip enabled