音乐网站制作之音乐播放

        在做音乐网站的过程中,我就先把我写的一部分需要总结的拿出来吧!

       音乐网站肯定需要有音乐,接下来我就说下在html中播放音乐:

        利用html5的新特性,audio;

         在对音乐播放之前我们还需要对歌词进行解析,歌词的一般的格式为:lrc格式

         在管理员上传歌曲的时候我们需要预览歌词,这时候我们就需要获取本地歌词(包括本地歌词的路径)

          具体获取 的代码瑞安所示:

                   

var word=[];//用于存放每句歌词
var time=[];//用于存放歌词中解析出来的时间

$(".lyricUp").change(function(){//当歌词上传的时候
		var objUrl = this.files[0];  
		  var fileType=getFileType($(this).val());
		  if(fileType!="LRC"){
			  alert("歌词格式不正确,只能上传lrc格式!");
			  $(this).val("");//清空歌词的路径
		  }else{
		if (objUrl) {  
		 ShowFileInfo(objUrl); 
		}
		  }
	}) ;

/*读取本地文件*/
	function ShowFileInfo(filespec)
	{  
	    var reader = new FileReader();
	    var lyic=null;
		 reader.onload = function() 
		    {  
			 lyic=this.result; 
			 praseLyric(lyic);
			showLyric(); 
		    }
		  reader.readAsText(filespec,"utf-8");
	}


	function praseLyric(lyic){
		/* 对歌词进行解析 */  
		word=[];
		time=[];
			var sp = lyic.split("[");
			for ( var i = 0; i < sp.length; i++) {
				var sp1 = sp[i].split("]");
				if (sp1[1] == undefined || sp1[1] == null) {
					word.push(" ");
				} else {
					word.push(sp1[1]);
				}
				var sp2 = sp1[0].split(":");
				if (sp2[0] == null || sp2[1] == null) {
					time.push(0);
				} else {
					if (!isNaN(sp2[0]) && !isNaN(sp2[1])) {
						var tmp = Math.ceil(sp2[0] * 60 + sp2[1] * 1);
						time.push(tmp);
					} else {
						time.push(0);
					}
				}
			}
		}

	/*创建子节点以及赋值*/
	function showLyric(){
		var ul = document.getElementById("music");
		var musicShowNode= $('#music p'); 
		for(var i=0;i<musicShowNode.length;i++){
			musicShowNode.eq(i).remove();
		}
		  
		for ( var i = 0; i < word.length; i++) {
			var createLi = document.createElement("p");
			createLi.setAttribute("id", time[i]);
			$("#"+time[i]+"").attr("align","center"); 
			createLi.innerHTML = word[i];
			ul.appendChild(createLi);
		}
	}

         /*对文件名的分割*/
      function getFileType(fileName){
           var fileReg=fileName.lastIndexOf(".");
           return fileName.substring(fileReg+1,fileName.length).toUpperCase();
           }


    音乐播放的制作:

                  audio中的属性有:

                          autoplay    值:autoplay     音乐就绪之后马上播放

                         controls     值: controls    出现该属性,立即向用户出现滚动条

                         loop            值:loop         出现loop,当播放完毕之后,重新播放

       

    audio标签属于html5中的媒体标签,所以具有html5中的所有媒体事件。事件类型如下表所示。

 

事件 描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值