美文网首页
H5 jQ 歌词定位时间

H5 jQ 歌词定位时间

作者: Sasoli | 来源:发表于2017-07-05 19:25 被阅读0次
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #txt{
            width: 300px;
            height: 500px;
            margin: 0 auto;
            border: 1px solid #000;
            /*float: right;*/
        }
        audio{
            position: relative;
            left: 50%;
            margin-left: -150px;
        }
    </style>
    </head>
    <body>
    <audio src="" controls="controls"></audio>
    
    <div id="txt"></div>
    </body>
    <script src="js/jquery-3.1.1.min.js"></script>
    <script>
    var data = [
        {
            "title":'测试文本',
    //            "time":[10,23,52,70,194,256],
            "audio_src":'http://mp3dkm.oss-cn-shanghai.aliyuncs.com/test/2.mp3',
            "message":['[00:00:01]10s内测试文本','[00:00:10]10s至50s,测试文本','[00:00:50]50s开始,这是一段很长的测试文本。一直到2m13s','[00:02:13]2m13s至3m28s测试文本','[00:03:28]测试文本结束']
        }
    ];
    //获取音频地址并添加
    var src = data[0].audio_src;
    $('audio').attr('src',src);
    //定义出来方便以后用
    var lrc = '';
    var time = '';
    //获取信息数据
    var message = data[0].message;
    //遍历
    $.each(message, function (index, value) {
        //调整需要显示到p标签的文字
        var lrc0 = message[index].split(']');
        lrc = lrc0[1];
        //创建p标签,把文字加进去
        var p = $('<p>'+ lrc +'</p>');
        //插入到文本框
        $('#txt').append(p);
        //调整时间
        var time0 = lrc0[0];
        var time1 = time0.split('[');
        var time2 = time1[1].split(':');
        //监听音频播放时间
        $('audio')[0].addEventListener('timeupdate', function () {
            //转换数据类型一致
            var currentTime = parseInt($('audio')[0].currentTime);
    
            time = parseInt(time2[0]*60*60)+parseInt(time2[1]*60)+parseInt(time2[2]);
            //为每个创建的p标签动态加id
            p.attr('id','lrc'+time);
    
            if(time <= currentTime){
                p.css('color','red')
            }else {
                p.css('color','black')
            }
            //点击歌词定位播放时间
            p.click(function () {
                //把id的数字部分取出来
                var cTime = parseInt(this.id.split('c')[1]);
                $('audio')[0].currentTime = cTime;
            })
        })
    });
    </script>
    </html>

    相关文章

      网友评论

          本文标题:H5 jQ 歌词定位时间

          本文链接:https://www.haomeiwen.com/subject/lkaqhxtx.html