|
|
请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
委托内网帮忙测试花潮LRC在线,收集到:
一、1个bug
不能完美适用于多种lrc变种格式,例如, mm:ss:ff 和 mm.ss.ff 以及更为古怪的其他变种,程序对此类变种格式的lrc歌词获取的时间不够友好。
二、1个建议
转换和检测这两种工作模式应该可以接受lrc时间偏移值。
针对问题,即解析变种lrc,我重新审阅了转换函数后,决定重新构建匹配lrc时间的正则表达式,令其提升匹配lrc时间格式的能力。重新构建的正则可以是这样:
let re = /\d+[\.:]\d+([\.:]\d+)?/g;
彩色部分即为新构建的正则表达式,它的工作原理解释如下:
首先是红色的,\d+[\.:] ,其中,\d 表示数字,\d+ 表示的是一个或多个数字,其后是 [\.:] ,表示出现一次 . 或者 : 中的任意一个。这是匹配 mm:(.) ;
其次是蓝色的,\d+ ,匹配的是 ss 部分,表示出现一个或多个数字。有些格式到 ss 就没了,所以这一部分只需要单独匹配 ss ;
第三,绿色部分,([\.:]\d+)? ,匹配的是 ff 部分。ff 部分不一定存在,所以用括号将整体正则包围起来,后面给一个问号,问号的意思是 0 或 1 次匹配,说的是括号里的正则表达式单位若出现0次或1次,都匹配,0次匹配时获取到的 ff 内容是 null(空值),1次匹配得到真实内容。至于括号里的正则,意思是,. 或 : 出现一次,\d+ 表示数字出现一次或多次。
新构建的正则,将更多地关注lrc宽松时间格式的存在,而抛弃原先表达式的整个时间信息内外结构(即 [mm:ss.(:)ff] 的形式)。然后在歌词处理上再去掉多余的如 [ 和 ] 等这类字符即可。
针对建议,我仔细思量后,觉得转换和检测模式的确也应该引入偏移量,并想到了实现方式:
创建一个数组变量,用于装载三种工作模式的 offset 值,制作时 offset 默认为 0.2,其它模式默认值都是 0。转换和同步试听模式的偏移值,仅在用户做了设定时 offset 才会发挥作用,但它一直会以默认值 0 参与相关运算。
以上仅是设想,尚未动手。
|
评分
-
| 参与人数 4 | 威望 +180 |
金钱 +360 |
经验 +180 |
收起
理由
|
加林森
| + 30 |
+ 60 |
+ 30 |
很给力! |
小辣椒
| + 50 |
+ 100 |
+ 50 |
赞一个! |
樵歌
| + 50 |
+ 100 |
+ 50 |
赞一个! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|