parseRaw method

  1. @override
LyricModel parseRaw(
  1. String mainLyric, {
  2. String? translationLyric,
})
override

解析主歌词,可选传入副歌词文本

Implementation

@override
LyricModel parseRaw(String mainLyric, {String? translationLyric}) {
  final idTags = <String, String>{};
  final translationMap = LrcParser.extractTranslationMap(translationLyric);
  final lines = <LyricLine>[];
  for (final line in mainLyric.split('\n')) {
    final tagInfo = _extractTag(line);
    if (tagInfo != null) {
      idTags[tagInfo.tag] = tagInfo.value;
      continue;
    }
    final jsonLine = _extractJsonLine(line, translationMap);
    if (jsonLine != null) {
      lines.add(jsonLine);
      continue;
    }
    final timedLine = _extractTimedLine(line, translationMap);
    if (timedLine != null) {
      lines.add(timedLine);
    }
  }
  return LyricModel(lines: lines, tags: idTags);
}