以下に、ネイティブ JS を使用して Web モバイル音楽プレーヤーで歌詞の同期再生を実装する例を紹介します。これは非常に参考になるものであり、皆さんの役に立つことを願っています。
これまで何度か書きましたが、毎回抜けていて、今日は長い時間をかけて考えを整理し、手がかりを整理しました
//获取歌词文本 var txt = document.getElementById("lrc"); var lrc = txt.value;//获取文本域里的值 /*console.log(lrc);*/ var lrcArr = lrc.split("[");//去除[ /*console.log(lrcArr);*/ var html = "";//定义一个空变量保存文本 for(var i=0 ; i<lrcArr.length ; i++) { var arr = lrcArr[i].split("]"); /*console.log(arr[1]);*/ var allTime = arr[0].split("."); var time = allTime[0].split(":"); //获取分钟 秒钟 把时间换算成秒钟 var timer = time[0]*60 + time[1]*1; var text = arr[1]; if(text) { html += "<p id="+timer+">"+text+"</p>" } con.innerHTML = html <pre class="html" name="code">}
实现歌词同步首先要获取到文本框 再配合H5中新增的属性如图 其实很简单啦!
//监听音乐播发进度实现歌词同步 myMusic.addEventListener("timeupdate",function(){ //获取当前播放时间 var curTime = parseInt(this.currentTime); if(document.getElementById(curTime)) { for(var i=0 ; i<oP.length ; i++) { oP[i].style.cssText = "color:#ccc;font-size:12px;"; } document.getElementById(curTime).style.cssText="color:rgb(242,110,111);font-size:18px;"; if (oP[num+7].id == curTime)//判断成功一次num++ { con.style.top = -20*num +"px"; num++; } } });
以上が、私が皆さんのためにまとめたものです。 . 今後も皆様のお役に立てれば幸いです。
関連記事:
vueでページ読み込みプログレスバーコンポーネントを実装する方法
axios を使用してフェッチメソッドをカプセル化し、呼び出します
以上がネイティブJSで音楽プレーヤーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。