LRC歌词解析

本文详细探讨了LRC歌词文件的格式,包括时间戳处理、歌词分段及显示同步的方法。通过解析LRC文件,可以实现音乐播放器中的动态滚动歌词效果,提升用户体验。此外,还介绍了在不同编程语言中解析LRC文件的常见技巧和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <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>``
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值