- 浏览: 140432 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
puyancheng1988:
哥们儿,我用的jfreechart在linux服务器上生成的图 ...
JFreeChart图表 -
soujava:
...
Linux下Oracle自动备份脚本 -
skylikeblue:
...
基于JAVA实现的手机收发短消息系统
<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>
发表评论
-
使用JQuery 简化Ajax 开发
2008-10-07 10:20 616jQuery 是什么? jQuery 由 John ... -
DTree的BUG解决方法
2008-12-25 15:33 984dtree.js的BUG当dtree条目的URL包括空格时,浏 ... -
JS常用正规表达式
2009-08-07 09:39 1172^ 匹配一个输入或一行 ... -
身份证验证算法
2008-03-05 16:29 788公民身份号码是特征组合码,由十七位数字本体码和一位数字校验 ... -
ajax缓存解决办法
2008-03-06 14:03 707有三种办法: 1、加个随机数 xmlHttp.open(&q ... -
基础的prototype.js常用函数及其用法
2008-03-06 15:49 672prototype.js 常用函数 : Element.t ... -
prototype源码中文说明
2008-03-06 15:57 640/** * 定义一个全局对 ... -
javascript replace方法与正则表达式
2008-03-13 17:52 674replace方法的语法是:str ... -
网页Tab选项卡实现
2008-06-28 19:58 779<style type="text/css&q ... -
dojo之djConfig详解
2008-06-30 15:55 758djConfig是dojo内置的一个全局设置对象,其作用是可以 ... -
dojo验证函数
2008-06-30 16:04 803dojo提供了几乎全方位的验证函数,在使用下面的方法之前,要通 ... -
常用正则表达式
2008-06-30 16:19 666下面给出一些常用正则表达式: 1、 非负整数:”^d+$” ... -
dojo对象方法
2008-06-30 17:00 750这里所说的基础对象和 ... -
dojo之ValidationTextbox
2008-06-30 17:04 889功能强大的文本框:dijit.form.ValidationT ... -
dojo之IO和BrowserIO
2008-06-30 17:48 741模块:dojo.io.IO dojo.io.bind 处理请求 ... -
JavaScript中创建对象
2008-08-19 09:04 652注意以下两点:1、在对象的方法内调用其他方法时,别忘记了要加t ... -
AJAX实践DWR篇
2008-08-19 09:06 839DWR(Direct Web Remoting)是一个WEB远 ... -
FckEditor V2.6 fckconfig.js中文注释
2008-08-22 16:14 841FckEditor V2.6 fckconfig.js中文注释 ... -
FCKeditor使用详解
2008-08-22 16:36 747首先,FCKEDITOR的性能是非常好的,用户只需很少的时间 ... -
JS组件dtree轻松实现树型菜单
2008-09-19 14:19 1093这几天写个网站,用了一个JavaScript写的树型菜单,有网 ...
相关推荐
在这个特定的案例中,该播放器还具备一个特殊功能——支持lrc歌词同步显示。lrc歌词文件是一种特殊的文本文件,包含了歌曲的逐句歌词以及与音频时间轴相对应的标记,使得用户在听歌的同时可以看到歌词随着音乐的播放...
通过上述分析,我们可以看出“HTML网页歌曲播放器 歌词同步”是一个典型的在线音乐播放器示例,它不仅实现了基本的音频播放功能,还具备了歌词同步显示的高级特性。开发者可以根据实际需求调整和优化该示例代码,以...
HTML+JavaScript 的LRC歌词同步播放器是一种利用网页技术实现的音乐播放器,它能够实时显示与音频播放进度同步的歌词。在这个项目中,我们主要会涉及到以下几个关键知识点: 1. HTML 结构: HTML(超文本标记语言)...
LRC歌词与歌曲的音频同步,使得用户在听歌时可以方便地阅读歌词。 LRC编辑器的主要功能包括: 1. **创建新歌词**:用户可以创建新的LRC文件,输入歌词内容,并为每一句歌词添加精确的时间戳,确保歌词与歌曲的每一...
在网页开发中,为了增强用户体验,常常需要实现歌词同步功能,特别是在音乐播放器的应用中。本文将基于给定的文件信息,详细介绍如何使用JavaScript(JS)来创建一个基本的网页播放器并实现歌词同步。 首先,我们要...
标题“vb 歌曲播放歌词同步显示”涉及的是使用Visual Basic (VB)编程语言实现的一项功能,即在播放歌曲时,同步显示歌词。这通常在音乐播放器软件中看到,为用户提供更好的听歌体验。接下来,我们将深入探讨如何在VB...
LRC(Lyric)是一种歌词文件格式,常用于存储带有时间戳的歌词,使得音乐播放时能同步显示歌词。本文将深入探讨如何使用JS解析各种形式的LRC歌词,包括自定义标签的处理,并实现每字精准同步。 首先,LRC文件的基本...
《jQuery音乐播放歌词同步显示代码》是一个针对网页音乐播放器的解决方案,主要使用JavaScript的jQuery库来实现歌词的同步显示功能。这个项目的核心是通过js文件处理音乐播放和歌词滚动,使得用户在享受音乐的同时,...
歌词同步是指在播放音乐的同时,将歌词按照时间轴精确地显示出来,使得用户能够跟随歌曲的旋律阅读对应的歌词,增加了欣赏音乐的乐趣。在本文中,我们将深入探讨歌词同步的原理、实现方式以及其在不同在线播放器中的...
5. **同步显示**:一旦找到合适的歌词,将其显示在播放界面的歌词区域。为了提供更好的用户体验,可以使用平滑滚动或淡入淡出等效果,使歌词的切换更为自然。 6. **优化性能**:为了提高性能和减少资源消耗,通常会...
标题中的“lrc歌词编码转换”指的是一个针对lrc格式歌词文件进行编码转换的应用程序。lrc文件是用于存储歌词的文本文件,通常与音乐文件一起使用,以便在播放音乐时同步显示歌词。编码问题在跨平台或设备间传输文件...
在网页音乐播放器中,实现歌词同步主要涉及以下几个步骤: 1. **加载LRC文件**:当用户选择播放某首歌曲时,播放器需要从服务器下载对应的LRC文件。这通常通过HTTP或HTTPS协议完成,可以与音频文件一起加载,或者在...
【千千静词 LRC歌词编辑器】是一款专为音乐爱好者设计的专业级LRC歌词编辑工具,由精品网页开发团队精心打造。LRC是Lyric的缩写,是一种专门用于存储歌曲歌词的文本格式,它允许歌词与音乐同步显示,为用户提供更...
WebLRC是一款专为提升网页音乐播放体验而设计的应用程序,其v2.0版本更是带来了前所未有的歌词同步显示功能,让音乐爱好者在享受音乐的同时,能够沉浸在歌词的艺术世界之中。 一、WebLRC的核心功能 1. 实时歌词...
在音乐播放软件或网页中,歌词同步能够提供用户更好的听歌体验,让歌词随着歌曲旋律精准滚动,增加欣赏乐趣。本项目通过JavaScript技术,实现了这一功能,并对原有方案进行了改进,以提升用户体验。 在JavaScript中...
在本文中,我们将深入探讨如何使用AS3...通过以上步骤,我们可以构建一个功能完备的AS3音乐播放器,具备加载LRC歌词并与歌曲同步显示的能力。这样的功能对于提升用户在音乐播放过程中的沉浸感和体验至关重要。
《jPlayer歌词同步音乐播放器》是一款专为音乐爱好者设计的高级播放软件,它结合了音乐播放和歌词...它的歌词同步功能和丰富的API使其在同类产品中脱颖而出,而广泛的兼容性和定制性则确保了在各种环境下的良好表现。
JPlayer的一个独特之处在于其对歌词同步的支持,通过使用LRC格式的歌词文件,可以实现在播放音乐时同步显示歌词,提高用户的沉浸感。 **3. JWPlayer** JWPlayer是另一个流行的HTML5和Flash兼容的视频播放解决方案。...
标题中的“flash写的mp3歌词同步播放器”指的是使用Adobe Flash技术开发的一种多媒体播放软件,它能够播放MP3音频文件并同步显示歌词。Flash是一种广泛应用于网页和互动媒体设计的平台,尤其在早期互联网时代,它被...