`

网页中LRC歌词同步显示

    博客分类:
  • js
阅读更多
<html><head> <title>音乐歌词同步测试</title> <style> <!-- .div { width:460px; height:200px; overflow-y:scroll; padding-top:80px; text-align:left; padding-left:100px; line-height:25px; font-size:13px; padding-bottom:50px; } --> </style> <script language="javascript"> var scrollt=0; var tflag=0;//存放时间和歌词的数组的下标 var lytext=new Array();//放存汉字的歌词 var lytime=new Array();//存放时间 var delay=10; var line=0; var scrollh=0; function getLy()//取得歌词 { var ly="[00:00]21个人.[00:10]制作:小黑.[00:20]歌手:游鸿明.[02:02][00:24]没想到是你.[00:29]看着,想着,说着失去.[02:12][00:35]想结束关系,又觉得可惜.[02:20][00:44]你红着双眼,试着,做着,想着改变.[02:30][00:54]但激情沉淀,结局更明显.[02:41][01:04]我看过温柔凋萎.[02:46][01:09]也听过诺言.[02:48][01:11]似玻璃破碎.[02:50]][01:14]我看过情人憔悴.[02:56][01:19]就好像刺猬为分离流泪.[03:00][01:23]伤心人负心人.[03:03][01:26]天下人痴情人.[03:05][01:28]只要是被伤心的人喝一杯.[01:33]自已人爱别人.[01:36]什么人狠心人.[01:38]不要再等,喝醉的灵魂.[03:46][01:45]music…….[02:06]谈著想著说著失去.[03:10]自已人爱别人.[03:12]什么人狠心人.[03:15]不要再等.[03:18]喝醉的灵魂.[03:56][03:23]多情人无心人.[03:59][03:25]无情人多伤人.[04:01][03:28]只要是被伤心的人喝一杯.[04:06][03:32]有心人无缘人.[04:08][03:34]有缘人断肠人.[04:11][03:37]何必再问新人换旧人.[04:20]music again……." return ly; } function show(t)//显示歌词 { var div1=document.getElementById("lyr");//取得层 document.getElementById("lyr").innerHTML=" ";//每次调用清空以前的一次 if(t<lytime[lytime.length-1])//先舍弃数组的最后一个 { for(var k=0;k<lytext.length;k++) { if(lytime[k]<=t&&t<lytime[k+1]) { scrollh=k*25;//让当前的滚动条的顶部改变一行的高度 div1.innerHTML+="<font color=red style=font-weight:bold>"+lytext[k]+"</font><br>"; } else if(t<lytime[lytime.length-1])//数组的最后一个要舍弃 div1.innerHTML+=lytext[k]+"<br>"; } } else//加上数组的最后一个 { for(var j=0;j<lytext.length-1;j++) div1.innerHTML+=lytext[j]+"<br>"; div1.innerHTML+="<font color=red style=font-weight:bold>"+lytext[lytext.length-1]+"</font><br>"; } } function scrollBar()//设置滚动条的滚动 { if(document.getElementById("lyr").scrollTop<=scrollh) document.getElementById("lyr").scrollTop+=1; if(document.getElementById("lyr").scrollTop>=scrollh+50) document.getElementById("lyr").scrollTop-=1; window.setTimeout("scrollBar()",delay); } function getReady()//在显示歌词前做好准备工作 { var ly=getLy();//得到歌词 //alert(ly); var arrly=ly.split(".");//转化成数组 for(var i=0;i<arrly.length;i++) sToArray(arrly[i]); sortAr(); /*for(var j=0;j<lytext.length;j++) { document.getElementById("lyr").innerHTML+=lytime[j]+lytext[j]+"<br>"; }*/ scrollBar(); } function sToArray(str)//解析如“[02:02][00:24]没想到是你”的字符串前放入数组 { var left=0;//"["的个数 var leftAr=new Array(); for(var k=0;k<str.length;k++) { if(str.charAt(k)=="[") { leftAr[left]=k; left++; } } if(left!=0) { for(var i=0;i<leftAr.length;i++) { lytext[tflag]=str.substring(str.lastIndexOf("]")+1);//放歌词 lytime[tflag]=conSeconds(str.substring(leftAr[i]+1,leftAr[i]+6));//放时间 tflag++; } } //alert(str.substring(leftAr[0]+1,leftAr[0]+6)); } function sortAr()//按时间重新排序时间和歌词的数组 { var temp=null; var temp1=null; for(var k=0;k<lytime.length;k++) { for(var j=0;j<lytime.length-k;j++) { if(lytime[j]>lytime[j+1]) { temp=lytime[j]; temp1=lytext[j]; lytime[j]=lytime[j+1]; lytext[j]=lytext[j+1]; lytime[j+1]=temp; lytext[j+1]=temp1; } } } } function conSeconds(t)//把形如:01:25的时间转化成秒; { var m=t.substring(0,t.indexOf(":")); var s=t.substring(t.indexOf(":")+1); s=parseInt(s.replace(/\b(0+)/gi,"")); if(isNaN(s)) s=0; var totalt=parseInt(m)*60+s; //alert(parseInt(s.replace(/\b(0+)/gi,""))); if(isNaN(totalt)) return 0; return totalt; } function getSeconds()//得到当前播放器播放位置的时间 { var t=getPosition(); t=t.toString();//数字转换成字符串 var s=t.substring(0,t.lastIndexOf("."));//得到当前的秒 //alert(s); return s; } function getPosition()//返回当前播放的时间位置 { var mm=document.getElementById("MediaPlayer1"); //var mmt=; //alert(mmt); return mm.CurrentPosition; } function mPlay()//开始播放 { var ms=parseInt(getSeconds()); if(isNaN(ms)) show(0); else show(ms); window.setTimeout("mPlay()",100) } window.setTimeout("mPlay()",100) function test()//测试使用, { alert(lytime[lytime.length-1]); } </script> </head> <body onLoad="getReady()"> <object id="MediaPlayer1" width="460" height="68" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" align="baseline" border="0" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject"> <param name="FileName" value="21个人.wma"> <param name="ShowControls" value="1"> <param name="ShowPositionControls" value="0"> <param name="ShowAudioControls" value="1"> <param name="ShowTracker" value="1"> <param name="ShowDisplay" value="0"> <param name="ShowStatusBar" value="1"> <param name="AutoSize" value="0"> <param name="ShowGotoBar" value="0"> <param name="ShowCaptioning" value="0"> <param name="AutoStart" value="1"> <param name="PlayCount" value="0"> <param name="AnimationAtStart" value="0"> <param name="TransparentAtStart" value="0"> <param name="AllowScan" value="0"> <param name="EnableContextMenu" value="1"> <param name="ClickToPlay" value="0"> <param name="InvokeURLs" value="1"> <param name="DefaultFrame" value="datawindow"> <embed src="21个人.wma" align="baseline" border="0" width="460" height="68" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=media&sba=plugin&" name="MediaPlayer" showcontrols="1" showpositioncontrols="0" showaudiocontrols="1" showtracker="1" showdisplay="0" showstatusbar="1" autosize="0" showgotobar="0" showcaptioning="0" autostart="1" autorewind="0" animationatstart="0" transparentatstart="0" allowscan="1" enablecontextmenu="1" clicktoplay="0" invokeurls="1" defaultframe="datawindow"> </embed> </object> <div id=lyr class=div>歌词加载中……</div> </body> </html>
分享到:
评论

相关推荐

    Mp3播放器,支持lrc歌词同步显示

    在这个特定的案例中,该播放器还具备一个特殊功能——支持lrc歌词同步显示。lrc歌词文件是一种特殊的文本文件,包含了歌曲的逐句歌词以及与音频时间轴相对应的标记,使得用户在听歌的同时可以看到歌词随着音乐的播放...

    html+js的lrc歌词同步播放器

    HTML+JavaScript 的LRC歌词同步播放器是一种利用网页技术实现的音乐播放器,它能够实时显示与音频播放进度同步的歌词。在这个项目中,我们主要会涉及到以下几个关键知识点: 1. HTML 结构: HTML(超文本标记语言)...

    HTML网页歌曲播放器 歌词同步

    HTML网页歌曲播放器,歌词同步~~~挺不错的网页播放器源码

    JS 网页播放器实现歌词同步

    在网页开发中,为了增强用户体验,常常需要实现歌词同步功能,特别是在音乐播放器的应用中。本文将基于给定的文件信息,详细介绍如何使用JavaScript(JS)来创建一个基本的网页播放器并实现歌词同步。 首先,我们要...

    jQuery音乐播放歌词同步显示代码.zip

    《jQuery音乐播放歌词同步显示代码》是一个针对网页音乐播放器的解决方案,主要使用JavaScript的jQuery库来实现歌词的同步显示功能。这个项目的核心是通过js文件处理音乐播放和歌词滚动,使得用户在享受音乐的同时,...

    在线播放器歌词同步

    歌词同步是指在播放音乐的同时,将歌词按照时间轴精确地显示出来,使得用户能够跟随歌曲的旋律阅读对应的歌词,增加了欣赏音乐的乐趣。在本文中,我们将深入探讨歌词同步的原理、实现方式以及其在不同在线播放器中的...

    vb 歌曲播放歌词同步显示

    标题“vb 歌曲播放歌词同步显示”涉及的是使用Visual Basic (VB)编程语言实现的一项功能,即在播放歌曲时,同步显示歌词。这通常在音乐播放器软件中看到,为用户提供更好的听歌体验。接下来,我们将深入探讨如何在VB...

    lrc歌词编码转换

    标题中的“lrc歌词编码转换”指的是一个针对lrc格式歌词文件进行编码转换的应用程序。lrc文件是用于存储歌词的文本文件,通常与音乐文件一起使用,以便在播放音乐时同步显示歌词。编码问题在跨平台或设备间传输文件...

    网页音乐播放器实时同步歌词

    在网页音乐播放器中,实现歌词同步主要涉及以下几个步骤: 1. **加载LRC文件**:当用户选择播放某首歌曲时,播放器需要从服务器下载对应的LRC文件。这通常通过HTTP或HTTPS协议完成,可以与音频文件一起加载,或者在...

    js解析多种写法的lrc歌词

    LRC(Lyric)是一种歌词文件格式,常用于存储带有时间戳的歌词,使得音乐播放时能同步显示歌词。本文将深入探讨如何使用JS解析各种形式的LRC歌词,包括自定义标签的处理,并实现每字精准同步。 首先,LRC文件的基本...

    网页音乐播放器同步歌词

    5. **同步显示**:一旦找到合适的歌词,将其显示在播放界面的歌词区域。为了提供更好的用户体验,可以使用平滑滚动或淡入淡出等效果,使歌词的切换更为自然。 6. **优化性能**:为了提高性能和减少资源消耗,通常会...

    WebLRC(网页歌词) v2.0 (附四万多首LRC歌词数据库)

    WebLRC是一款专为提升网页音乐播放体验而设计的应用程序,其v2.0版本更是带来了前所未有的歌词同步显示功能,让音乐爱好者在享受音乐的同时,能够沉浸在歌词的艺术世界之中。 一、WebLRC的核心功能 1. 实时歌词...

    JavaScript歌词同步改进版

    在音乐播放软件或网页中,歌词同步能够提供用户更好的听歌体验,让歌词随着歌曲旋律精准滚动,增加欣赏乐趣。本项目通过JavaScript技术,实现了这一功能,并对原有方案进行了改进,以提升用户体验。 在JavaScript中...

    as3加载lrc歌词

    在本文中,我们将深入探讨如何使用AS3...通过以上步骤,我们可以构建一个功能完备的AS3音乐播放器,具备加载LRC歌词并与歌曲同步显示的能力。这样的功能对于提升用户在音乐播放过程中的沉浸感和体验至关重要。

    jplayer歌词同步音乐播放器

    《jPlayer歌词同步音乐播放器》是一款专为音乐爱好者设计的高级播放软件,它结合了音乐播放和歌词...它的歌词同步功能和丰富的API使其在同类产品中脱颖而出,而广泛的兼容性和定制性则确保了在各种环境下的良好表现。

    flash写的mp3歌词同步播放器

    标题中的“flash写的mp3歌词同步播放器”指的是使用Adobe Flash技术开发的一种多媒体播放软件,它能够播放MP3音频文件并同步显示歌词。Flash是一种广泛应用于网页和互动媒体设计的平台,尤其在早期互联网时代,它被...

    HTML5多种音频视频播放插件,歌词同步

    JPlayer的一个独特之处在于其对歌词同步的支持,通过使用LRC格式的歌词文件,可以实现在播放音乐时同步显示歌词,提高用户的沉浸感。 **3. JWPlayer** JWPlayer是另一个流行的HTML5和Flash兼容的视频播放解决方案。...

    音乐歌词同步播放器

    总之,音乐歌词同步播放器通过`jPlayer`这样的JavaScript库,结合LRC格式的歌词文件,实现了音乐播放与歌词展示的完美结合,为用户带来了更加沉浸式的听歌体验。开发者可以根据需求灵活运用`jPlayer`的API和事件,...

    千千静词 LRC歌词编辑器

    【千千静词 LRC歌词编辑器】是一款专为音乐爱好者设计的专业级LRC歌词编辑工具,由精品网页开发团队精心打造。LRC是Lyric的缩写,是一种专门用于存储歌曲歌词的文本格式,它允许歌词与音乐同步显示,为用户提供更...

Global site tag (gtag.js) - Google Analytics