LRC歌词解析
程序员文章站
2022-06-21 15:05:37
...
<body>
<div class="lrc"></div>
<progress class="audioprogress" ></progress>
</body>
<script>
function parseLRC(filePath,callback){
var lrcObj={};
var request=new XMLHttpRequest();
request.open("GET",filePath)
request.send()
request.onload=function(){
var lrcString=this.response;
var regExp=/\[(\d{2}):(\d{2})\.(\d{2})\](.*)/g;
while(1){
var result=regExp.exec(lrcString)
if (result) {
var time= parseInt(result[1])*60+parseInt(result[2]);
lrcObj[time]=result[4];
} else{
break;
}
}
}
return lrcObj;
}
function init(){
var lrcObj=parseLRC("丑八怪.lrc");
var audio=document.createElement("audio")
audio.src="../薛之谦-丑八怪.mp3"
audio.autoplay=true;
audio.controls=true;
document.body.appendChild(audio)
var audiopro=document.querySelector(".audioprogress")
audio.oncanplay=function(){//获取歌曲总时长
console.log(this.duration);
audiopro.max=this.duration
}
audio.ontimeupdate=function(){//此时数据加载完成
audiopro.value=this.currentTime
document.querySelector(".lrc").innerHTML=lrcObj[parseInt(this.currentTime)]?lrcObj[parseInt
(this.currentTime)]:document.querySelector(".lrc").inn erHTML;
}
}
init()
<script>``
推荐阅读
-
PHP抓取网页、解析HTML常用的方法总结_php实例
-
JavaScript实用库:Lodash源码数组函数解析(八)initial、join、last、nth、baseNth、(isIndex)
-
JavaScript实用库:Lodash源码数组函数解析(十一)without以及很多我没详戏记细过的
-
JavaScript实用库:Lodash源码数组函数解析(二)
-
php 泛解析 二级域名 session不同步的有关问题求角
-
关于url的解析问题
-
面试必问框架之ARouter源码解析
-
List --- ArrayList源码解析
-
android开发中适配问题解析
-
解析mysql不重复字段值求和_MySQL