花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 165|回复: 69

[灌水] 写个处理LRC的代码段凑个热闹

[复制链接]
  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

    发表于 2023-2-21 09:31 | 显示全部楼层 |阅读模式

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

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

    x

    请各位指教

    1. let processLRC = (lyricTxt) =>
    2.         //        去掉头尾的空格并分行
    3.         var lines = lyricTxt.replace(/(^\s*)|(\s*$)/g, "").split(/\r|\n|\r\n/);
    4.         
    5.         var lrcs = new Array();
    6.         
    7.         // 依次处理每一行
    8.         for (let index = 0; index < lines.length; index++) {
    9.                 //        先把时间数据分离出来
    10.                 let chkTime = lines[index].match(/\[\d{1,2}:\d{2}.\d{1,3}\]|\[\d{1,2}:\d{2}\]/g );
    11.                
    12.                 if(chkTime)        {                //        如果有时间数据就是有效的行
    13.                         tIdx = lines[index].lastIndexOf(']');//        取得该行的歌词起始位置
    14.                         if(tIdx>0)        lrcTxt = lines[index].substr(tIdx+1);//        取得该行的歌词
    15.                         for(m = 0; m < chkTime.length; m++)        {// 对每个时刻数据
    16.                                 ta = chkTime[m].substr(1).replace(']','').split(/:/);// 分离 分、秒及百分秒(或毫秒)
    17.                                 _t = (+ta[0]) * 60 + (+ta[1]);
    18.                                 //        加入集合中
    19.                                 lrcs.push({seconds:+_t.toFixed(2), words:lrcTxt, dur:0});
    20.                                 
    21.                         }
    22.                 }
    23.         }
    24.         
    25.         //        排序
    26.         lrcs.sort(function(a, b){return (a.seconds - b.seconds);});
    27.         //        准备计算平均的持续时间
    28.         let avgInterval  = 0;
    29.         for(n = 0; n < lrcs.length - 1; n++)        {
    30.                 //        后一行起始时刻 - 当前行起始时刻
    31.                 lrcs[n].dur = +(lrcs[n + 1].seconds - lrcs[n].seconds).toFixed(2);
    32.                 //        把每行的持续时间累加起来
    33.                 avgInterval += (+lrcs[n].dur);
    34.         }
    35.         //        计算得平均的持续时间
    36.         avgInterval /= (lrcs.length - 1);
    37.         //        最后一行的持续时间取平均的持续时间
    38.         lrcs[lrcs.length - 1].dur = +avgInterval.toFixed(2);
    39.         
    40.         for(n = 0; n < lrcs.length - 1; n++)        {
    41.                 //        若某行的持续时间大于平均持续时间则置为平均持续时间
    42.                 lrcs[n].dur = lrcs[n].dur > avgInterval?lrcs[lrcs.length - 1].dur:lrcs[n].dur
    43.         }
    44.         //console.log(lrcs)
    45.         return lrcs; //        返回处理好的lrc歌词数据集合。
    46. }

    复制代码

    评分

    参与人数 5威望 +210 金钱 +420 经验 +210 收起 理由
    醉美水芙蓉 + 30 + 60 + 30 很给力!
    小辣椒 + 50 + 100 + 50 赞一个!
    红影 + 50 + 100 + 50 赞一个!
    马黑黑 + 30 + 60 + 30 很给力!
    樵歌 + 50 + 100 + 50 赞一个!

    查看全部评分

    我就来看看
  • TA的每日心情
    开心
    2025-12-19 07:22
  • 签到天数: 651 天

    [LV.9]以坛为家II

    1377

    主题

    7万

    回帖

    13万

    积分

    管理员

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

    花潮帅哥多彩人生海样胸怀春风拂面青草情怀心曲飞扬七彩绚丽活泼开朗男儿情怀鹰傲苍穹共看流星风雨同行我心永远天长地久幸福快乐春意盎然喜乐安康心想事成周年庆指尖上的流年舞会之星情人节花潮管理

    发表于 2023-2-21 10:34 | 显示全部楼层
    虽然不懂,但也要加分鼓励
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-4-29 07:03
  • 签到天数: 116 天

    [LV.6]常住居民II

    240

    主题

    5577

    回帖

    2万

    积分

    版主

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

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪男儿情怀飞龙在天逍遥自在花潮超版

    发表于 2023-2-21 10:41 | 显示全部楼层
    路过,点赞
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 10:43 | 显示全部楼层
    樵歌 发表于 2023-2-21 10:34
    虽然不懂,但也要加分鼓励

    谢谢您的支持
    我就来看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 10:44 | 显示全部楼层

    谢谢您的支持
    我就来看看
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3052

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2023-2-21 12:56 | 显示全部楼层
    使用对象存储lrc数据,方法很好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 13:06 | 显示全部楼层
    马黑黑 发表于 2023-2-21 12:56
    使用对象存储lrc数据,方法很好

    谢谢点评!
    其实改成[ , , ]也可以,但时间久了容易忘记分别是什么了。
    我就来看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 17:08 | 显示全部楼层

    屏幕截图 2023-02-21 073335.png
    1. let processLRC = (lyricTxt) => {
    2.         var lines = lyricTxt.replace(/(^\s*)|(\s*$)/g, "").split(/\r|\n|\r\n/);
    3.         var lrcs = new Array();
    4.         for (let index = 0; index < lines.length; index++) {
    5.                 let chkTime = lines[index].match(/\[\d{1,2}:\d{2}.\d{1,3}\]|\[\d{1,2}:\d{2}\]/g );
    6.                
    7.                 if(chkTime)        {
    8.                         tIdx = lines[index].lastIndexOf(']');
    9.                         if(tIdx>0)        lrcTxt = lines[index].substr(tIdx+1);
    10.                         for(m = 0; m < chkTime.length; m++)        {
    11.                                 ta = chkTime[m].substr(1).replace(']','').split(/:/);
    12.                                 _t = (+ta[0]) * 60 + (+ta[1]);
    13.                                 lrcs.push([+_t.toFixed(2), lrcTxt, 0]);
    14.                         }
    15.                 }
    16.         }
    17.        
    18.         lrcs.sort(function(a, b){return (a[0] - b[0]);});
    19.         let avgInterval  = 0;
    20.         for(n = 0; n < lrcs.length - 1; n++)        {
    21.                 lrcs[n][2] = +(lrcs[n + 1][0] - lrcs[n][0]).toFixed(2);
    22.                 avgInterval += (+lrcs[n][2]);
    23.         }
    24.         avgInterval /= (lrcs.length - 1);
    25.         lrcs[lrcs.length - 1][2] = +avgInterval.toFixed(2);
    26.        
    27.         for(n = 0; n < lrcs.length - 1; n++)        {
    28.                 lrcs[n][2] = lrcs[n][2] > avgInterval?lrcs[lrcs.length - 1][2]:lrcs[n][2]
    29.         }
    30.         //console.log(lrcs)
    31.         return lrcs;
    32. }
    复制代码
    我就来看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-19 07:22
  • 签到天数: 651 天

    [LV.9]以坛为家II

    1377

    主题

    7万

    回帖

    13万

    积分

    管理员

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

    花潮帅哥多彩人生海样胸怀春风拂面青草情怀心曲飞扬七彩绚丽活泼开朗男儿情怀鹰傲苍穹共看流星风雨同行我心永远天长地久幸福快乐春意盎然喜乐安康心想事成周年庆指尖上的流年舞会之星情人节花潮管理

    发表于 2023-2-21 17:39 | 显示全部楼层

    不必客气哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 17:40 | 显示全部楼层
    我就来看看
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3052

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2023-2-21 18:14 | 显示全部楼层
    起个网名好难 发表于 2023-2-21 13:06
    谢谢点评!
    其实改成[ , , ]也可以,但时间久了容易忘记分别是什么了。

    对。对象拥有键值对
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 18:29 | 显示全部楼层
    马黑黑 发表于 2023-2-21 18:14
    对。对象拥有键值对

    时间一长自己写的也不明白为什么了
    我就来看看
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3052

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2023-2-21 18:32 | 显示全部楼层
    起个网名好难 发表于 2023-2-21 18:29
    时间一长自己写的也不明白为什么了

    这种现象经常会有
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 19:04 | 显示全部楼层
    马黑黑 发表于 2023-2-21 18:32
    这种现象经常会有

    做项目的代码注释比代码还多
    我就来看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1883

    主题

    32万

    回帖

    37万

    积分

    管理员

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

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-2-21 19:10 | 显示全部楼层
    我也不懂,但觉得能自己写代码的都好牛啊。点赞
     
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3052

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2023-2-21 19:22 | 显示全部楼层
    起个网名好难 发表于 2023-2-21 19:04
    做项目的代码注释比代码还多

    注释很重要,尽管我个人不太习惯做
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 19:30 | 显示全部楼层
    马黑黑 发表于 2023-2-21 19:22
    注释很重要,尽管我个人不太习惯做

    尽管注释是个好习惯,但不是工作的马虎就马虎了。
    我就来看看
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    3052

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

    发表于 2023-2-21 19:30 | 显示全部楼层
    起个网名好难 发表于 2023-2-21 19:30
    尽管注释是个好习惯,但不是工作的马虎就马虎了。

    个人都有局限,木有办法呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-5-5 04:26
  • 签到天数: 597 天

    [LV.9]以坛为家II

    185

    主题

    5874

    回帖

    2万

    积分

    贵宾

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

    花潮帅哥飞龙在天王者至尊大将风范音画大师天籁妙音花潮贵宾

     楼主| 发表于 2023-2-21 19:32 | 显示全部楼层
    红影 发表于 2023-2-21 19:10
    我也不懂,但觉得能自己写代码的都好牛啊。点赞

    其实就是先计划好做一件事分几步,然后用代码去实现每个步骤。
    我就来看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-25 21:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    1423

    主题

    6万

    回帖

    12万

    积分

    管理员

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

    花潮美女多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹心香一瓣音画大师天籁妙音风雨同行我心永远喜乐安康中秋征文指尖上的流年花潮管理

    发表于 2023-2-21 19:48 | 显示全部楼层
    我就飘过。。。。
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-12-20 05:10 , Processed in 0.086938 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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