js代码
把歌词文件解析成数组
function get( lyrics ){
var l= lyrics;
var reg_soundname =/\[ti:(.+?)\]/i;
var reg_singer=/\[ar:(.+?)\]/i;
var reg_CD =/\[al:(.+?)\]/i;
var reg_maker =/\[(by:.+?)\]/i;
var arr_soundname = l.match(reg_soundname);
var arr_singer = l.match(reg_singer);
var arr_CD= l.match(reg_CD);
var arr_maker = l.match(reg_maker);
var info= " ";
if (arr_soundname != null)
{
info += ":" + arr_soundname[1] + " ";
}
if (arr_singer != null)
{
info += ":" + arr_singer[1] + " ";
}
if (arr_CD != null)
{
info += ":" + arr_CD[1] + " ";
}
if (arr_maker != null)
{
info += arr_maker[1] + " ";
}
var reg_take =/\[\d\d:\d\d\.\d\d\]*(\s)*(\S)+/g; //
var arr_lyrics = l.match(reg_take);
var reg_replacetime =/(\[\d\d:\d\d\.\d\d\])+/g;
var reg_gettimes =/(\[\d\d:\d\d\.\d\d\])/g;
var reg_readtime =/\[(\d\d):(\d\d\.\d\d)\]/;
var reg_dis =/ $/;
var arr_splitedLyrics = new Array();
var arr_info = [0, info];
arr_splitedLyrics.push(arr_info);
for ( ly= 0; ly < arr_lyrics.length; ly++)
{
var arr_tmptime= arr_lyrics[ly].match(reg_gettimes);
// alert("arr_lyrics[ly]="+arr_lyrics[ly]);
// alert("arr_tmptime="+arr_tmptime);
var lyy = arr_lyrics[ly].replace(reg_replacetime, "");
for ( i= 0; i < arr_tmptime.length; i++)
{
var arr_single= new Array();
var t = arr_tmptime[i];
// alert("t="+t);
var min = t.substring(1,3);
var sec = t.substring(4,t.length-1);
//alert("sec="+sec);
var time = Number(min) * 60 + Number(sec);
// alert("time="+time);
arr_single[0] = time;
// if (!reg_dis.test(lyy))
// {
// lyy += " ";
// }
arr_single[1] = lyy;
arr_splitedLyrics.push(arr_single);
}
arr_splitedLyrics.sort(function(a, b){
return a[0]-b[0];
}
);
}
return arr_splitedLyrics;
}
html代码
<script type="text/javascript" src="tt.js"></script>
<script type="text/javascript" src="jquery-latest.js"></script>
<script type="text/javascript" src="uft8.js"></script>
<div align="center">
<object classid = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="player" width = "250" height = "200">
<param name = "url" value = "冰雨.mp3" target="_blank" >参数 url 定义播放媒体的路径。
<!--是否自动播放-->
<param NAME="Balance" VALUE="0"> <SCRIPT LANGUAGE="JavaScript">
</SCRIPT>
<!--调整左右声道平衡,同上面旧播放器代码-->
<param name="enabled" value="-1">
<!--播放器是否可人为控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<param name="defaultFrame" value="2">
<PARAM NAME="AutoStart" value="-1">
<param name="SAMIFilename" value="ll">
<param name="ShowStatusBar" value="0">
</object>
</div>
<div>
<a href="#" id="next" >下一首歌</a>
<a href="#" id="p">上一首歌</a>
<input type="checkbox" id="ck">循环播放
时间 <input type="text" id="playerinfo">
</div>
<!--显示歌词-->
<div id="geci">
</div>
<a href="#" id="showLs" >查看歌曲</a>
<div>
<select name="select1" size="5" id="s" >
<option value="1" selected > 朋友</option>
<option value="2" > 你好吗</option>
</select>
</div>
<div id="lcdiv">
<select name="ly" size="10" id="lc">
</select>
</div>
<script type="text/javascript">
player.closedCaption.SAMIFileName = "C:\\3.smi";
var num=0;//控制歌曲的下标
</SCRIPT>
//监听播放器的事件
<SCRIPT event="playStateChange(star)" for="player" LANGUAGE="JScript">
//当播放下一首时同步播放列表的歌曲名
if( star==8 ){
num=num+1;
if(num>=s.options.length){num=0}
s.options[num].selected=true;
}
</SCRIPT>
<SCRIPT FOR = player EVENT = buffering(Start)>
if(Start==false){ setInterval(updatetime() ,1000);}
</SCRIPT>
<script type="text/javascript">
//显示播放时间
setInterval(updatetime,1000);
function updatetime()
{
$("#playerinfo").val( player.controls.currentPositionString + " | " + player.currentMedia.durationString);
}
//监听循环的次数
$("#ck").click(function (){
if(ck.checked==true){
player.settings.setMode("loop",true)
}else{
player.settings.setMode("loop",false)
}
});
//播放用户从播放列表中选中的歌曲
$("#s").click(function (){
num=this.selectedIndex;
player.controls.playItem(player.currentPlaylist.item(num));
});
//播放下一首歌
$("#next").click( function (){
player.controls.next();
num=num+1;
if(num>=s.options.length){num=0;
player.controls.playItem(player.currentPlaylist.item(num));
}
s.options[num].selected=true;
});
//播放上一首歌
$("#p").click( function (){
num=num-1;
if(num<0){
num=s.options.length-1;
player.controls.playItem(player.currentPlaylist.item(num));
}
s.options[num].selected=true;
});
//生成歌词的数组(从隐藏域中提取歌词的字符串)
$("#geci").hide();
$("#lcdiv").hide();
var ly="";
var arr_lyrics;
var j=0;
$("#showLs").click(function (){
var html = $.ajax({
url:"http://localhost:8080/music/lyrics.html",
async: false
}).responseText;
$("#geci").html(html);
arr_lyrics=get($("#geci").html());
for( i=0;i<arr_lyrics.length;i++){
ly+="<option >"+arr_lyrics[i][1]+"</option>";
}
ly=ly.substring(2,ly.length);
$("#lc").html(ly);
$("#lc").attr({size:arr_lyrics.length});
$("#lcdiv").show("slow");
setInterval(playLyrics,3000);
});
//歌词与歌曲的同步
function playLyrics (){
var playTime= player.controls.currentPositionString;
var min =playTime.substring(0,2);
var sec = playTime.substring(3,playTime.length);
var p_time = Number(min) * 60 + Number(sec);
for(i=0;i<lc.options.size-1;i++ ){
if( p_time>= arr_lyrics[i][0]&&p_time<arr_lyrics[i+1][0]){
j=i;
break;
}
}
lc.options[j].selected=true;
alert(parseInt(lc.style.top)-1);
};
</script>
lyrics.html
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<body>
[ti:让我忘了你]
[ar:沈世爱]
[al:半杯苦咖啡]
[by:bzmtv.com]
[03:53.24][01:53.08][00:01.60]沈世爱 - 让我忘了你
[03:58.98][01:59.16][00:09.85]www.50004.com
[02:35.66][00:39.31]
[02:37.23][00:40.27]当我想忘记你 紧紧闭上双眼
[02:42.96][00:46.02]想着一定会有人代替你的容颜
[02:48.88][00:51.91]我不会再想念 慢慢睁开双眼
[02:54.68][00:57.77]泪水已经模糊了我的视线
[03:00.27][01:03.24]在我忘记你之前 仿佛看见你的脸
[03:06.12][01:09.48]轰轰烈烈的故事 平淡无奇的结局
[03:11.96][01:15.14]我不想再有期盼 你给我一点光芒
[03:18.12][01:21.15]游荡在整个城市的两端
[03:23.66][01:26.80]在夜深人静的时侯 看着窗外的月光
[03:29.47][01:32.51]莫名的孤独和寂寞 映在回忆的路上
[03:35.34][01:38.39]你已经渐渐的离去 消失了像风一样
[03:41.19][01:44.20]每次当我走得累了 幻想着有你在身旁
[03:51.88][01:51.86]
</body>
播放列表的代码
<SCRIPT language="JavaScript" type="text/JavaScript" >
//生成播放列表playList
var playlist= player.playlistCollection.newPlaylist("New");
//生成播放项
var m = player.newMedia("1.mp3");
//添加歌曲到播放列表
playlist.appendItem(m);
//设置当前的播放器播放的歌曲列表
player.currentPlaylist = playlist;
</SCRIPT>
参考资料
http://www.cnblogs.com/davyjiang/articles/1243397.html
分享到:
相关推荐
网页音乐播放器是网站上用于播放音频文件的重要组件,它为用户提供友好的界面和便捷的操作方式,使得在线听音乐变得更加方便。本资源提供十四款不同的网页音乐播放器源码,对于学习和理解网页音乐播放器的实现原理...
HTML网页音乐播放器是一种在网页上实现音频播放功能的技术,主要依赖于HTML5中的`<audio>`标签。这款基于原生HTML和JavaScript的音乐播放器是大学生进行期末课程设计的一个优秀实践项目,对于学习Web开发的学生来说...
一个完整的网页音乐播放器不仅包含基础的播放和暂停功能,还可能包含以下高级特性: 1. **播放列表**:通过JavaScript动态加载和切换不同音频文件,实现播放列表功能。 2. **音量控制**:使用`volume`属性和滑块...
网页音乐播放器HTML是一种在网页上嵌入音乐播放功能的技术,它允许用户在浏览网页的同时享受音乐。这种技术主要基于HTML、CSS和JavaScript等前端技术实现,为网站增添互动性和娱乐性。 首先,HTML(超文本标记语言...
这个实验报告着重介绍了如何构建一个基本的网页音乐播放器,并附带了相关的代码资源。 在HTML5中,`<audio>`元素是核心,它允许我们在网页上嵌入音频内容。这个实验的第一步就是创建一个HTML页面,使用`<audio>`...
最新梨花带雨网页音乐播放器二开优化修复美化版全开源版本源码下载 全新升级的梨花带雨网页音乐播放器现已推出优化修复美化版,并全面开放源代码供您下载。这款播放器采用thinkphp6框架开发,以XPlayerHTML5为基础...
精简网页音乐播放器是一种专为网页设计的轻量级音乐播放解决方案,它注重用户体验,以简洁、高效为核心,提供基本的音乐播放功能,如上一首、下一首切换,满足用户在网页上享受音乐的需求。在当今互联网环境中,网页...
网页音乐播放器源码是构建在线音乐平台的关键组成部分,它允许用户在网页上无缝地播放音频内容。在"100多个网页音乐播放器源码(下)"这个压缩包中,包含了多种不同风格和功能的播放器源码,适合各种类型的网站需求...
网页音乐播放器是一种在线音乐平台,用户可以在网页上浏览、搜索和播放自己喜欢的音乐。而“同步歌词”功能则是这种播放器的一个重要组成部分,它允许用户在音乐播放的同时看到逐句滚动的歌词,增强了听歌的体验。在...
标题中的“另一款漂亮的网页音乐播放器”表明我们要讨论的是一款设计美观且功能完善的在线音乐播放软件。在描述中提到的“可支持列表播放”,意味着该播放器具备播放列表功能,用户可以创建和管理自己的音乐播放序列...
梨花带雨播放器基于thinkphp6开发的XPlayerHTML5网页播放器前台控制面板,支持多音乐平台音乐解析。修复外链播放器失败问题,替换掉原来的接口,扒梨花的前端UI,美化登录页面。 安装环境 php7.3+ mysql5.6/5.7 ...
网页音乐播放器是一种嵌入在HTML页面中的小应用程序,它允许用户在网页上直接播放音频文件,无需离开当前页面或打开新的窗口。本压缩包包含的资源是几个可用于网页的音乐播放器代码示例,特别推荐的是"mini.htm"文件...
基于HTML5+JavaScript开发简洁美观的网页音乐播放器源码+项目说明.tar基于HTML5+JavaScript开发简洁美观的网页音乐播放器源码+项目说明.tar基于HTML5+JavaScript开发简洁美观的网页音乐播放器源码+项目说明.tar基于...
**cPlayer:HTML5网页音乐播放器的深度解析** cPlayer是一款基于HTML5技术的网页音乐播放器,它以其简洁的界面和强大的功能受到了许多网页设计师和开发者的喜爱。这款播放器利用HTML5的Audio API,实现了在网页上...
本项目“html5带背景半透明mp3网页音乐播放器”正是利用了HTML5的这一特性,创建了一个具有半透明背景和良好用户体验的音乐播放器,主要针对MP3格式的音频文件。 首先,我们需要了解HTML5的`<audio>`标签。这个标签...
总体来说,这个JavaScript网页音乐播放器项目提供了一整套解决方案,涵盖了音频播放、播放列表管理、用户交互等多个方面,可以用于创建个性化的网页音乐播放体验。开发者可以根据自己的需求对源代码进行调整和扩展,...
HTML5网页音乐播放器是现代网页设计中一个重要的组成部分,它允许用户在不离开网页的情况下享受音频内容。HTML5引入了新的音频元素,使得开发者能够更方便地在网页上集成音乐播放功能,无需依赖Flash或其他插件。这...
【个人网页音乐播放器】是一种在线音乐播放解决方案,它允许用户在自己的网站上添加背景音乐,为访客提供沉浸式的听觉体验。这种播放器通常包含一个用户界面,支持播放、暂停、上一曲、下一曲等基本操作,并且可能...
HTML5 CSS网页音乐播放器及登录界面是一种利用现代Web技术构建的交互式用户界面,它结合了HTML5、CSS和JavaScript的力量,为用户提供了一个既美观又功能丰富的音乐播放体验,同时具备用户登录功能。以下是对这些关键...
在Android开发中,实现独特的视觉效果常常能提升用户体验,本次分享的"仿百度网页音乐播放器圆形图片转圈播放效果.zip"就是一个很好的示例。这个项目主要涉及的是自定义视图(Custom View)以及Android中的动画...