|
|

楼主 |
发表于 2023-2-21 17:08
|
显示全部楼层
- let processLRC = (lyricTxt) => {
- var lines = lyricTxt.replace(/(^\s*)|(\s*$)/g, "").split(/\r|\n|\r\n/);
- var lrcs = new Array();
- for (let index = 0; index < lines.length; index++) {
- let chkTime = lines[index].match(/\[\d{1,2}:\d{2}.\d{1,3}\]|\[\d{1,2}:\d{2}\]/g );
-
- if(chkTime) {
- tIdx = lines[index].lastIndexOf(']');
- if(tIdx>0) lrcTxt = lines[index].substr(tIdx+1);
- for(m = 0; m < chkTime.length; m++) {
- ta = chkTime[m].substr(1).replace(']','').split(/:/);
- _t = (+ta[0]) * 60 + (+ta[1]);
- lrcs.push([+_t.toFixed(2), lrcTxt, 0]);
- }
- }
- }
-
- lrcs.sort(function(a, b){return (a[0] - b[0]);});
- let avgInterval = 0;
- for(n = 0; n < lrcs.length - 1; n++) {
- lrcs[n][2] = +(lrcs[n + 1][0] - lrcs[n][0]).toFixed(2);
- avgInterval += (+lrcs[n][2]);
- }
- avgInterval /= (lrcs.length - 1);
- lrcs[lrcs.length - 1][2] = +avgInterval.toFixed(2);
-
- for(n = 0; n < lrcs.length - 1; n++) {
- lrcs[n][2] = lrcs[n][2] > avgInterval?lrcs[lrcs.length - 1][2]:lrcs[n][2]
- }
- //console.log(lrcs)
- return lrcs;
- }
复制代码 |
|