花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 114|回复: 59

[灌水] 晚秋

[复制链接]

该用户从未签到

41

主题

1644

回帖

5495

积分

论坛元老

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

发表于 2022-9-18 20:36 | 显示全部楼层 |阅读模式

请马上登录,朋友们都在花潮里等着你哦:)

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 红芍药 于 2022-9-18 21:45 编辑

lrc
00:00 | 00:00

评分

参与人数 5威望 +160 金钱 +320 经验 +160 收起 理由
小辣椒 + 50 + 100 + 50 赞一个!
梦缘 + 20 + 40 + 20 赞一个!
马黑黑 + 30 + 60 + 30 很给力!
加林森 + 30 + 60 + 30 很给力!
东篱闲人 + 30 + 60 + 30 赞一个!

查看全部评分

该用户从未签到

41

主题

1644

回帖

5495

积分

论坛元老

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

 楼主| 发表于 2022-9-18 20:37 | 显示全部楼层
@马黑黑 黑黑老师指点一下歌词同步的技巧。。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 20:38 | 显示全部楼层
    构想很好,有创新,有思路。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 20:39 | 显示全部楼层
    效果不太好,没有达到你想要的结果。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:39 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 20:38
    构想很好,有创新,有思路。。。。

    歌词后来同步不了,不知啥原因?你给指点一下下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-15 10:31
  • 签到天数: 525 天

    [LV.9]以坛为家II

    1383

    主题

    3万

    回帖

    10万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹花好月圆飞龙在天王者至尊大将风范天籁妙音共看流星风雨同行幸福快乐喜乐安康指尖上的流年花潮版主

    发表于 2022-9-18 20:40 | 显示全部楼层
    浪漫行,,,挺好的!
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:40 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 20:39
    效果不太好,没有达到你想要的结果。。。

    你指导一下我
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:42 | 显示全部楼层
    加林森 发表于 2022-9-18 20:40
    浪漫行,,,挺好的!

    队长,晚上好。还是不太熟练。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 20:45 | 显示全部楼层
    红芍药 发表于 2022-9-18 20:39
    歌词后来同步不了,不知啥原因?你给指点一下下

    这个代码本来就应该是不完全同步。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:47 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 20:45
    这个代码本来就应该是不完全同步。。。

    黑黑老师是同步的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 20:49 | 显示全部楼层

    做照片就应该做一个完整的照片效果,留好天地四周,你别把照片的花边给剪了啊。。

    俺理解你想要的应该是这样的效果:


                                   
    登录/注册后可看大图
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:50 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 20:49
    做照片就应该做一个完整的照片效果,留好天地四周,你别把照片的花边给剪了啊。。

    俺理解你 ...

    你老说的没错,本来是有花边的,一上传到代码里就成这样了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 20:53 | 显示全部楼层
    本帖最后由 东篱闲人 于 2022-9-18 20:55 编辑
    红芍药 发表于 2022-9-18 20:50
    你老说的没错,本来是有花边的,一上传到代码里就成这样了。

    那就是你代码的长宽参数错误了。。。宽:1080 高:710
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:54 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 20:53
    那就是你代码的长宽参数错误了。。。

    修改了好几回就是改不了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 20:56 | 显示全部楼层
    红芍药 发表于 2022-9-18 20:54
    修改了好几回就是改不了。

    宽:1080 高:710
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:58 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 20:53
    那就是你代码的长宽参数错误了。。。宽:1080 高:710

    就是这个数字啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 20:59 | 显示全部楼层

    是按照这个参数编辑的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-18 21:01
  • 签到天数: 1181 天

    [LV.10]以坛为家III

    1248

    主题

    2万

    回帖

    9万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀男儿情怀鹰傲苍穹花好月圆心香一瓣紫色情节飞龙在天王者至尊生财有道大将风范金剪刀音画大师天籁妙音妙笔生花共看流星我心永远幸福快乐宁静致远逍遥自在喜乐安康妙趣横生指尖上的流年花潮贵宾

    发表于 2022-9-18 21:01 | 显示全部楼层
    红芍药 发表于 2022-9-18 20:59
    是按照这个参数编辑的。

    你发下代码俺 看看。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41

    主题

    1644

    回帖

    5495

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

     楼主| 发表于 2022-9-18 21:03 | 显示全部楼层
    东篱闲人 发表于 2022-9-18 21:01
    你发下代码俺 看看。

    <style>
    #papa { left: -214px; width: 1080px; height: 710px; background: tan url('http://www.bohann.net/data/attachment/forum/202209/18/202649mqh925f2ysc0i9fh.png ') no-repeat center/cover; box-shadow: 3px 3px 20px #000; display: grid; place-items: center; position: relative; z-index: 1; }
    #mplayer { position: absolute; left: 20px; bottom: 0px; width: 300px; height: 80px; user-select: none; display: grid; place-items: center; cursor: pointer; }
    #mplayer:hover #btnwrap, #mplayer:hover #prog { transform: translateY(var(--yy)); }
    #mplayer:hover #btnwrap { background: linear-gradient(to top right, red, green); border-radius: 50%; opacity: .75; }
    #btnwrap, #prog { position: absolute; display: grid; place-items: center;transition: .5s; }
    #btnwrap { --yy: -15px; width: 40px; height: 40px; transform: rotate(45deg); border: 1px solid tan; border-radius: 6px; opacity: .25; }
    #btnplay { width: 20px; height: 20px; background: #eee; clip-path: polygon(0 0, 0% 100%, 100% 50%); }
    #btnpause { width: 2px; height: 20px; border-style: solid; border-width: 0px 4px; border-color: transparent #eee; display: none; }
    #prog { --yy: 20px; width: 300px; height: 16px; border-radius: 10px; background: linear-gradient(90deg, orange, red 100%, transparent 0); border: 1px solid gray; font: normal 14px / 16px sans-serif; color: white;  opacity: .75; }
    #lrc { --dur: 6s; position: absolute; top: 10px; font: bold 2em sans-serif; color: transparent; letter-spacing: 2px; background: linear-gradient(-90deg, darkred, gold, orange, snow) 100% 0 / 200% 100%; background-clip: text; -webkit-background-clip: text; }
    @keyframes bgMerg1 { from { background-position: 0 0; } to { background-position: -100% 0; } }
    @keyframes bgMerg2 { from { background-position: 0 0; } to { background-position: -100% 0; } }
    </style>

    <div id="papa">
            <div id="lrc">lrc</div>
            <div id="mplayer">
                    <div id="btnwrap"><span id="btnplay"></span><span id="btnpause"></span></div>
                    <div id="prog">00:00 | 00:00</div>
            </div>
    </div>

    <script>
    let lrcAr = [
            ['0.00','毛宁- 晚秋'],
            ['26.62','在这个陪着枫叶飘零的晚秋'],
            ['32.67','才知道你不是我一生的所有'],
            ['38.69','蓦然又回首是牵强的笑容 '],
            ['44.42','那多少往事飘散在风中'],
            ['50.82','怎么说相爱却注定要分手 '],
            ['56.16','怎么能让我相信那时一场梦'],
            ['62.00','情缘去难留我抬头望天空'],
            ['67.96','想起你说爱我到永久'],
            ['74.00','心中藏着多少爱和愁 '],
            ['79.61','想要再次握住你的手'],
            ['85.21','温暖你走后冷冷的清秋'],
            ['90.78','相逢也只是在梦中'],
             ['97.83','一'],
            ['120.83',' 怎么说相爱却注定要分手'],
            ['125.01','怎么能让我相信那时一场梦 '],
            ['131.10','情缘去难留我抬头望天空']
    ];
    let aud = new Audio() ,lrcKey = 0, flag = true;
    let setColor = () => Math.random().toString(16).substr(-6);
    aud.src = 'https://music.163.com/song/media/outer/url?id=5280042.mp3';
    aud.autoplay = true;
    aud.loop = true;

    btnwrap.onclick = () => aud.paused ? aud.play() : aud.pause();
    prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
    aud.addEventListener('pause', () => btnstate());
    aud.addEventListener('play',() => btnstate());
    aud.addEventListener('timeupdate', () => {
            prog.style.background= 'linear-gradient(90deg, orange, red ' + aud.currentTime / aud.duration * 100 + '%, transparent 0)';
            prog.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
            for(j=0; j<lrcAr.length; j++) {
                    if(aud.currentTime >= lrcAr[j][0]) {
                            if(lrcKey == j) {
                                    showLrc();
                            } else {
                                    continue;
                                    
                            }
                    }
            }
    });
    let btnstate = () => aud.paused ? (btnplay.style.display = 'block', btnpause.style.display = 'none') : (btnplay.style.display = 'none', btnpause.style.display = 'block');
    let showLrc = () => {
            let time= 6;
            if(lrcKey < lrcAr.length - 1) {
                    time = lrcAr[lrcKey + 1][0] - lrcAr[lrcKey][0];
                    lrc.style.animation = (lrcKey % 2 == 0 ? 'bgMerg1 ' : 'bgMerg2 ') + time + 's linear forwards';
            }
            lrc.innerText = lrcAr[j][1];
            lrcKey += 1;
            if(lrcKey >= lrcAr.length) lrcKey = 0;
    }
    let toMin = (val)  => {
            if (!val) return '00:00';
            val = Math.floor(val);
            let min = parseInt(val / 60), sec = parseFloat(val % 60);
            if(min < 10) min = '0' + min;
            if(sec < 10) sec = '0' + sec;
            return min + ':' + sec;
    }
    </script>
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-19 12:03
  • 签到天数: 1674 天

    [LV.Master]伴坛终老

    3052

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2022-9-18 21:06 | 显示全部楼层
    红芍药 发表于 2022-9-18 20:37
    @马黑黑 黑黑老师指点一下歌词同步的技巧。。

    你这帖子所使用的模板和歌词都是比较老旧的,当时对逐字同步的处理方法相对落后。请参考以下代码:
    1. <style>
    2.         #papa { left: -214px; width: 1024px; height: 640px; background: #ccc; box-shadow: 3px 3px 20px #000; display: grid; place-items: center; overflow: hidden; position: relative; z-index: 1; }
    3.         #mplayer { position: absolute; bottom: 0; width: 300px; height: 80px; user-select: none; display: grid; place-items: center; cursor: pointer; }
    4.         #mplayer:hover #btnwrap, #mplayer:hover #prog { transform: translateY(var(--yy)); }
    5.         #mplayer:hover #btnwrap { background: linear-gradient(to top right, red, green); border-radius: 50%; opacity: .75; }
    6.         #btnwrap, #prog { position: absolute; display: grid; place-items: center;transition: .5s; }
    7.         #btnwrap { --yy: -15px; width: 40px; height: 40px; transform: rotate(45deg); border: 1px solid tan; border-radius: 6px; opacity: .25; }
    8.         #btnplay { width: 20px; height: 20px; background: #eee; clip-path: polygon(0 0, 0% 100%, 100% 50%); }
    9.         #btnpause { width: 2px; height: 20px; border-style: solid; border-width: 0px 4px; border-color: transparent #eee; display: none; }
    10.         #prog { --yy: 20px; width: 300px; height: 16px; border-radius: 10px; background: linear-gradient(90deg, black, blue 100%, transparent 0); border: 1px solid gray; font: normal 14px / 16px sans-serif; color: olive; opacity: .75; }
    11.         #lrc { position: absolute; right: 20px; top: 20px; font: bold 2em sans-serif; color: transparent; letter-spacing: 2px; background: linear-gradient(-90deg, purple, orange) 100% 100% / 200% 200%; background-clip: text; -webkit-background-clip: text; }
    12.         #plane {position: absolute;left: 60px;top: 0;width: 100px;offset-distance: 0;offset-path: path("M0 20 Q300 80, 600 200 T1000 100");animation: move 8s linear infinite;}
    13.         @keyframes bgMove1 { from { background-position: 0 0; } to { background-position: -100% 0; } }
    14.         @keyframes bgMove2 { from { background-position: 0 0; } to { background-position: -100% 0; } }
    15.         @keyframes move { to { offset-distance: 100%;} }
    16. </style>

    17. <div id="papa">
    18.         <img id="plane" src="./pic/plane.png" alt="" />
    19.         <div id="lrc">花潮lrc在线</div>
    20.         <div id="mplayer">
    21.                 <div id="btnwrap"><span id="btnplay"></span><span id="btnpause"></span></div>
    22.                 <div id="prog">00:00 | 00:00</div>
    23.         </div>
    24. </div>

    25. <script>
    26. let lrcAr = [
    27.         [0.01, '关淑怡 - 忘记他', 1],
    28.         [1.03, '作词:黄沾', 0],
    29.         [2.03, '作曲:黄沾', 16],
    30.         [18.05, '忘记他', 4],
    31.         [22.07, '等于忘掉了一切', 5],
    32.         [27.09, '等于将方和向抛掉', 4],
    33.         [32.07, '遗失了自己', 4],
    34.         [37.06, '忘记他', 4],
    35.         [41.10, '等于忘尽了欢喜', 4],
    36.         [46.05, '等于将心灵也锁住', 5],
    37.         [51.08, '同苦痛一起', 5],
    38.         [56.09, '从来只有他', 4],
    39.         [61.08, '可以令我欣赏自己', 4],
    40.         [66.04, '更能让我去用爱', 3],
    41.         [69.06, '将一切平凡事', 2],
    42.         [72.03, '变得美丽', 4],
    43.         [77.01, '忘记他', 4],
    44.         [81.04, '怎么忘记得起', 5],
    45.         [86.06, '铭心刻骨来永久记住', 3],
    46.         [91.03, '从此永无尽期', 6],
    47.         [107.05, 'Ba', 18],
    48.         [125.05, '忘记他', 4],
    49.         [129.06, '等于忘掉了欢喜', 5],
    50.         [134.06, '等于将心灵也锁住', 4],
    51.         [139.04, '同苦痛一起', 5],
    52.         [144.06, '从来只有他', 4],
    53.         [149.05, '可以令我欣赏自己', 4],
    54.         [154.00, '更能让我去用爱', 3],
    55.         [157.04, '将一切平凡事', 2],
    56.         [160.01, '变得美丽', 3],
    57.         [165.00, '忘记他', 4],
    58.         [169.02, '怎么忘记得起', 4],
    59.         [174.03, '铭心刻骨来永久记住', 4.5],
    60.         [179.01, '从此永无尽期', 6],
    61. ];
    62. let mKey = 0, mSeek = false, mFlag = true;
    63. let aud = new Audio();

    64. aud.src = 'https://music.163.com/song/media/outer/url?id=68288.mp3';
    65. aud.autoplay = true;
    66. aud.loop = true;

    67. btnwrap.onclick = () => aud.paused ? aud.play() : aud.pause();
    68. prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
    69. aud.addEventListener('pause', () => mState());
    70. aud.addEventListener('play', () => mState());
    71. aud.addEventListener('seeked', () => calcKey());

    72. aud.addEventListener('timeupdate', () => {
    73.         prog.style.background= 'linear-gradient(90deg, black, blue ' + aud.currentTime / aud.duration * 100 + '%, snow 0)';
    74.         prog.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
    75.         for(j=0; j<lrcAr.length; j++) {
    76.                 if(aud.currentTime >= lrcAr[j][0]) {
    77.                         if(mKey === j) showLrc(lrcAr[j][2]);
    78.                         else continue;
    79.                 }
    80.         }
    81. });

    82. let mState = () => aud.paused ? (btnplay.style.display = 'block', btnpause.style.display = 'none', lrc.style.animationPlayState = 'paused') : (btnplay.style.display = 'none', btnpause.style.display = 'block', lrc.style.animationPlayState = 'running');

    83. let showLrc = (time) => {
    84.         lrc.style.animation = (mFlag ? 'bgMove1 ' : 'bgMove2 ') + time + 's linear forwards';
    85.         lrc.innerHTML = lrcAr[mKey][1];
    86.         mKey += 1;
    87.         mFlag = !mFlag;
    88. }

    89. let calcKey = () => {
    90.         for(j = 0; j < lrcAr.length; j ++) {
    91.                 if(aud.currentTime <= lrcAr[j][0]) {
    92.                         mKey = j - 1;
    93.                         break;
    94.                 }
    95.         }
    96.         if(mKey < 0) mKey = 0;
    97.         if(mKey > lrcAr.length - 1) mKey = lrcAr.length - 1;
    98.         let mtime = lrcAr[mKey][2] - (aud.currentTime - lrcAr[mKey][0]);
    99.         showLrc(mtime);
    100. }

    101. let toMin = (val)  => {
    102.         if (!val) return '00:00';
    103.         val = Math.floor(val);
    104.         let min = parseInt(val / 60), sec = parseFloat(val % 60);
    105.         if(min < 10) min = '0' + min;
    106.         if(sec < 10) sec = '0' + sec;
    107.         return min + ':' + sec;
    108. }
    109. </script>
    复制代码
    其中的歌词数据构成,请仔细看一下,每一句都多出一个数字,这个数字是每次歌词从第一个字到唱完或差不多唱完最后一个字的用时(秒),这样,逐字同步的效果就比较明显了。

    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-19 20:12 , Processed in 0.217921 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表