六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

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

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中文網其它相關文章!


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




主站蜘蛛池模板: 青草青视频 | 日本中出 | 青青草原影视 | 在线观看91香蕉国产免费 | 日本欧美一区 | 伊人日日夜夜 | 在线成人国产 | 日本美女一级视频 | 人人鲁免费播放视频人人香蕉 | 青娱乐在线视频盛宴 | 四虎欧美永久在线精品免费 | 日本高清二区 | 四虎影院观看视频在线观看 | 欧美亚洲一区二区三区在线 | 青娱乐手机在线 | 亚洲手机在线手机观看高清hd | 日日碰碰视频播放 | 伊人222成人综合网 伊人.com | 欧美性性性 | 一本到视频 | 性欧美高清极品猛交 | 五月婷婷伊人 | 中国黄色www | 亚洲 欧美 日韩 在线 中文字幕 | 色综合天天综一个色天天综合网 | 五月深爱网 | 香蕉app在线观看免费版 | 亚洲综合20p| 亚洲国产欧美精品 | 天堂网在线最新版www | 午夜性色福利视频 | 中文字幕欧美在线观看 | 性性欧美 | 午夜大片免费完整在线看 | 天天射天天干天天插 | 天天操天天干天天射 | 我想看一级黄色毛片 | 图片一区| 天天色天天舔 | 欧美又粗又大又长 | 日日噜噜噜噜人人爽亚洲精品 |