根据代码,判断问题可能出现在以下几个地方:

  1. 第三行代码中的 line 变量没有被正确赋值或者不存在;
  2. 第四行代码中的 timeLyric 变量没有被正确赋值或者不存在;
  3. 第五行代码中的 time 变量没有被正确赋值或者不存在;
  4. 第六行代码中的 minute 变量没有被正确赋值或者不存在;
  5. 第七行代码中的 second 变量没有被正确赋值或者不存在;
  6. 第八行代码中的 seconds 变量没有被正确赋值或者不存在;
  7. 第十行代码中的 lyric 变量没有被正确赋值或者不存在;
  8. 如果前面的问题都没有出现,那么问题可能出现在 lyric 变量是否已经被正确赋值。

因此,需要检查以上几个变量是否存在,并且在第十行代码之前,确保 lyric 变量已经被正确赋值。例如:

var timeLyric = line.split(']');           //取出时间并转成毫秒数           
var time = timeLyric[0].trim().replaceAll('[', '');           
var minute = parseInt(time.split(':')[0]);           
var second = parseFloat(time.split(':')[1]);           
var seconds = minute * 60 * 1000 + second * 1000;           
//取出歌词           
var lyric = timeLyric[1] ? timeLyric[1].trim() : '';      
if (lyric === '') {             
  continue; //跳过该行歌词           
}           

这样就可以避免 lyric 变量未被正确赋值的问题。同时,可以添加一个条件判断,如果 timeLyric[1] 不存在,将 lyric 变量赋值为空字符串,避免出现 trim of undefined 错误。


原文地址: https://www.cveoy.top/t/topic/oReV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录