<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      Html完成歌曲歌詞同步

      [摘要]這篇文章主要介紹了關于Html實現歌曲歌詞同步,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8&q...
      這篇文章主要介紹了關于Html實現歌曲歌詞同步,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>歌詞同步</title>
          <style>
              body {
                  background:url("Img/起風了.jpg") center no-repeat ;
                  background-size:60% 100%;
              }
              * {
                  margin:0 auto;
                  padding:0;
              }
              .play {
                  color: #01e5ff;
                  font-size: 24px;
              }
      
              .overPlay {
                  font-size: inherit;
                  color: #fff;
              }
      
              #p_lrc {
                  position: absolute;
                  padding-top: 0px;
                  left: 28%;
                  top: 300px;
                  width:50%;
                  transition: top .5s;
                  margin: 0 auto;
                  
              }
      
              .p_DisLrc {
                  overflow: hidden;
                  color:#b1abab;
                  width: 70%;
                  height: 600px;  
                  position: relative;
                  margin: 0 auto;
                  
              }
      
              #audio {
                  width: 100%;
              }
      
              .p_audio {
                  width: 50%;
                  margin: 0 auto;
              }
      
              .p_but {
                  position: absolute;
                  font-size: 26px;
                  font-weight: 900;
                  top: 40%;
                  right: 0%;
              }
      
                  .p_but p {
                      cursor: pointer;
                  }
          </style>
          <link href="CSS/iconfont.css" rel="stylesheet" />
      </head>
      
      
      
      <body>
          <p id="p_1" style="display: none;">
          </p>
          <!-- 歌詞顯示界面 -->
          <p class="p_DisLrc">
              <p id="p_lrc">
                  <p id="lrc_row1"></p>
              </p>
              <!-- 用于調整歌詞位置 -->
              <p class="p_but">
                  <p onmousedown="time = setInterval(btn_down,0)" onmouseup="clearInterval
      
      (time)"><i class="iconfont icon-top"></i></p>
                  <p onmousedown="time = setInterval(btn_top,0)" onmouseup="clearInterval
      
      (time)"><i class="iconfont icon-down"></i></p>
              </p>
          </p>
          <!-- 播放器控件 -->
          <p class="p_audio">
              <audio id="audio" controls="controls" autoplay="autoplay">
                  <source src="audio/起風了.mp3" type="audio/mpeg">
              </audio>
          </p>
      
      
      
          <script src="JavaScript/jquery-3.3.1.js"></script>
          <script>
              var audio = document.getElementById("audio");
              var play = $("#lrc_row1");
              //將歌詞添加到p中
              $(document).ready(function () {
                  //加載歌詞
                  $('#p_1').load("LRC/qifengle.lrc");
                  //獲取所有歌詞
                  setTimeout(function () {
                      var lrcArr = $("#p_1").text().split('\n');
                      for (var i = 4; i < lrcArr.length; i++) {
                          var p = document.createElement("p");
                          //空白歌詞不進行加載
                          if (lrcArr[i].substring(10) != "") {
                              p.innerText = lrcArr[i].substring(10);
                              $("#p_lrc").append(p);
                          }
                      }
                  }, 200)
              })
      
              function lrcDisplay() {
                  //獲取播放進度(轉換的格式為: 00:00)
                  var minute = parseInt(audio.currentTime / 60);//分鐘
                  minute = minute == 0 ? "00" : (minute + "").length < 2 ? "0" + minute : minute;
                  //獲取秒數
                  var second = (parseInt(audio.currentTime)) % 60;
                  second = second == 0 ? "00" : (second + "").length < 2 ? "0" + second : second;
                  //正則表達匹配歌詞
                  var regex = new RegExp('\\[' + (minute + ":" + second) + '.+\\].+\n');
                  var text = regex.exec($("#p_1").text());
                  if (text != null) {
                      var str1 = new String($(play).next().text());
                      var str2 = new String(text[0].substring(10));
                      if (str1.trim() == str2.trim()) {
                          //歌詞顏色變色
                          $(play).attr("class", "overPlay");
                          play = $(play).next();
                          $(play).attr("class", "play");
                          //歌詞滾動(自動)
                          var top = parseInt($("#p_lrc").css("top"));
                          $("#p_lrc").css("top", -1 * ((-1 * top) + 22) + "px");
                      }
                  }
              }
              setInterval(lrcDisplay, 500);
              //歌詞滾動(手動)
              var time = null;
              function btn_top() {
                  var top = parseInt($("#p_lrc").css("top"));
                  $("#p_lrc").css("top", -1 * ((-1 * top) + 100) + "px");
              }
              function btn_down() {
                  var top = parseInt($("#p_lrc").css("top"));
                  if (top <= 0)
                      $("#p_lrc").css("top", -1 * ((-1 * top) - 100) + "px");
              }
      
              //調整歌詞位置的函數
              function btn_top() {
                  var top = parseInt($("#p_lrc").css("top"));
                  $("#p_lrc").css("top", -1 * ((-1 * top) + 30) + "px");
              }
              /*
                  1.歌詞文件不能是默認編碼(記事本文件和lrc文件默認為ANSI編碼) 只需要改為 UTF-8或
      
      者GB2312,否則亂碼
                  2.歌曲因為沒有算毫秒差距,可能出現細微誤差
                  3.因為網頁同源策略的原因,外部直接打開html文件只能用firefox訪問,
                     不能進行跨域訪問,如果不使用文件讀取可以在任意地方打開.
                  4.因為ajax識別原因,會把空格當做分割內容,即歌詞文件名不能有空格
                  5.因為js對文件操作以及ajax請求存在諸多默認限制,若以類似方法在winfrom asp等中很
      
      多問題都會得到解決.
                  6.setTimeout()和setInterval(),在瀏覽器窗口非激活的狀態下會停止工作或者以極慢的
      
      速度工作。目前我已知就IE不會有這種問題。
              */
          </script>
      </body>
      </html>

      相關推薦:

      HTML實現美化上傳文件樣式

      HTML實現搶票功能(設定時間打開搶票的頁面)

      以上就是Html實現歌曲歌詞同步的詳細內容,更多請關注php中文網其它相關文章!


      網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




      日韩精品一区二区三区高清