如何读取 KRC 格式的文件

参考:《初步分析 LRC、TRC、KRC、QRC、KSC 和 KAJ 歌词格式》

.krc 格式的文件是酷狗自有的歌词文件格式,用文本编辑器打开 .krc 格式的文件,发现是二进制的,没有办法阅读。通过上述参考文献,知道这种格式的歌词其实也是有规则的。于是找到以下 PHP 代码用以解码。

// 从文件读取 krc 歌词内容
$krc_content = file_get_contents('/Volumes/RamDisk/Beyonce-Halo.krc');

function krc2lrc($krc_content, $glue = "n") {
  // 解密用的 secret
  $enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
  $krc_content = substr($krc_content, 4);
  $len = strlen($krc_content);
  $krc_compress = '';

  // RC4
  for ($k = 0; $k < $len; $k++) {
    $krc_compress .= chr(ord($krc_content[$k]) ^ $enKey[$k % 16]);
  }

  // unzip
  $krc_text = gzuncompress($krc_compress);
  return $krc_text;

  // if you need compatible with traditional lyric format
  preg_match_all("/[(ar|ti|offset):(.+)]/", $krc_text, $matches);
  $lrc_text = implode($glue, $matches[0]) . $glue;
  preg_match_all("/[(d{0,8}),(d{0,8})](.+)/", $krc_text, $matches);
  unset($krc_text, $krc_compress, $krc_content, $enKey);
  if (!empty($matches[1])) {
    foreach($matches[1] as $k => $v) {
      list($seconds, $millis) = explode('.', $v / 1000);
      $lrc_time =
          date('i:s', 1388534400 + $seconds) . '.' . substr($millis, 0, 2);
      $lrc_cont = preg_replace("//", '', $matches[3][$k]);
      $lrc_text .= "[{$lrc_time}]{$lrc_cont}{$glue}";
    }
  }

  return $lrc_text;
}

$lrc_content = krc2lrc($krc_content);

通过上面的代码,得到如下格式的歌词文件。

[id:$012A0197]
[ar:Beyonce]
[ti:halo]
[by:]
[hash:3707643c9282eef7135ba26c8a7d9b98]
[al:]
[sign:]
[qq:]
[total:261675]
[offset:0]
[language:eyJjb250ZW50IjpbeyJsYW5ndWFnZSI6MCwibHlyaWNDb250ZW50IjpbWyJcdThCQjBcdTRGNEZcdTYyMTFcdTRGRUVcdTdCNTFcdTc2ODRcdTkwQTNcdTRFOUJcdTU4OTkiXSxbIlx1NUI5RFx1OEQxRCBcdTRFRDZcdTRFRUNcdTU3NERcdTU4NENcdTRFMEJcdTY3NjUiXSxbIlx1NUI4M1x1NEVFQ1x1NzUxQVx1ODFGM1x1NkNBMVx1NjcwOVx1NjJCNVx1NjI5NyJdLFsiXHU1QjgzXHU0RUVDXHU3NTFBXHU4MUYzXHU2Q0ExXHU2NzA5XHU1M0QxXHU1MUZBXHU1OEYwXHU5N0YzIl0sWyJcdTYyMTFcdTYyN0VcdTUyMzBcdTRFMDBcdTRFMkFcdTY1QjlcdTZDRDVcdThCQTlcdTRGNjBcdThGREJcdTUzQkIiXSxbIlx1NEY0Nlx1NjYyRlx1NjIxMVx1NEVDRVx1Njc2NVx1NkNBMVx1NjcwOVx1NjAwMFx1NzU5MSJdLFsiXHU1NzI4XHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGXHU3Njg0XHU3MTY3XHU4MDAwXHU0RTRCXHU0RTBCIl0sWyJcdTYyMTFcdTczQjBcdTU3MjhcdTY3MDlcdTYyMTFcdTc2ODRcdTU5MjlcdTRGN0YiXSxbIlx1NUMzMVx1NTBDRlx1NjIxMVx1ODhBQlx1NTUyNFx1OTE5Mlx1NEU4NiJdLFsiXHU2MjExXHU0RTNBXHU0RjYwXHU2MjUzXHU3ODM0XHU2QkNGXHU0RTAwXHU2NzYxXHU4OUM0XHU1MjE5Il0sWyJcdTYyMTFcdTYyNDBcdTYyRTVcdTY3MDlcdTc2ODRcdTkwRkRcdTY2MkZcdTRFMDBcdTU3M0FcdTUxOTJcdTk2NjkiXSxbIlx1NjIxMVx1NEYxQVx1NUY4NVx1NTcyOFx1NEY2MFx1OEVBQlx1OEZCOSJdLFsiXHU1NzI4XHU2MjExXHU3M0IwXHU1NzI4XHU2MjQwXHU3N0U1XHU5MDUzXHU3Njg0XHU2QkNGXHU0RTAwXHU1OTA0Il0sWyJcdTYyMTFcdTg4QUJcdTRGNjBcdTYyRTVcdTYyQjEiXSxbIlx1NUI5RFx1OEQxRCBcdTYyMTFcdTUzRUZcdTRFRTVcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NEY2MFx1NzdFNVx1OTA1M1x1NEY2MFx1NjYyRlx1NjIxMVx1NzY4NFx1NEUwMFx1NTIwNyJdLFsiXHU0RjYwXHU2NjJGXHU2MjExXHU5NzAwXHU4OTgxXHU3Njg0XHU0RTAwXHU1MjA3Il0sWyJcdTkwQTNcdTUxNjhcdTUxOTlcdTU3MjhcdTRGNjBcdTc2ODRcdTgxMzhcdTRFMEEiXSxbIlx1NUI5RFx1OEQxRCBcdTYyMTFcdTgwRkRcdTYxMUZcdTg5QzlcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1Nzk0OFx1Nzk3N1x1NUI4M1x1NEUwRFx1NEYxQVx1NkQ4OFx1NTkzMSJdLFsiXHU2MjExXHU1M0VGXHU0RUU1XHU2MTFGXHU4OUM5XHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTgwRkRcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NjIxMVx1NTNFRlx1NEVFNVx1NjExRlx1ODlDOVx1NTIzMFx1NEY2MFx1NzY4NFx1NTE0OVx1NzNBRiJdLFsiXHU2MjExXHU4MEZEXHU3NzBCXHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTVDMzFcdTUwQ0ZcdTRFMDBcdTdGMTVcdTk2MzNcdTUxNDlcdTcxNjdcdTgwMDBcdTU3MjhcdTYyMTFcdThFQUJcdTRFMEEiXSxbIlx1NTcyOFx1NjIxMVx1NjcwMFx1OUVEMVx1NjY5N1x1NzY4NFx1NTkxQ1x1NjY1QVx1NzFDM1x1NzBFNyJdLFsiXHU0RjYwXHU2NjJGXHU1NTJGXHU0RTAwXHU0RTJBXHU2MjExXHU2MEYzXHU4OTgxXHU3Njg0XHU0RUJBIl0sWyJcdTRGNjBcdThCQTRcdTRFM0FcdTYyMTFcdTZDODlcdThGRjdcdTRFOEVcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUZcdTRFNEJcdTRFMEIiXSxbIlx1NjIxMVx1NTNEMVx1OEE5M1x1NjIxMVx1NkMzOFx1OEZEQ1x1NEUwRFx1NEYxQVx1NTE4RFx1NTkzMVx1NjcxQiJdLFsiXHU3NTFBXHU4MUYzXHU2MTFGXHU4OUM5XHU0RTBEXHU1MjMwXHU1OTMxXHU2NzFCIl0sWyJcdThCQjBcdTVGQzZcdTZERjFcdTUyM0IgXHU0RTBEXHU4MEZEXHU1RkQ4XHU4QkIwIl0sWyJcdTUzQzhcdTRFMDBcdTZCMjFcdTYyOEFcdTYyMTFcdTc1MjlcdTU2REVcdTU3MzBcdTk3NjIiXSxbIlx1NjExRlx1ODlDOVx1NUMzMVx1NjIxMVx1ODhBQlx1NTUyNFx1OTE5Mlx1NEU4NiJdLFsiXHU2MjExXHU0RTNBXHU0RjYwXHU2MjUzXHU3ODM0XHU4OUM0XHU1MjE5Il0sWyJcdTYyMTFcdTYyNDBcdTYyRTVcdTY3MDlcdTc2ODRcdTRFMDBcdTUyMDdcdTkwRkRcdTY2MkZcdTRFMDBcdTU3M0FcdTUxOTJcdTk2NjkiXSxbIlx1NjIxMVx1NEYxQVx1NUY4NVx1NTcyOFx1NEY2MFx1OEVBQlx1OEZCOSJdLFsiXHU1NzI4XHU2MjExXHU3N0U1XHU5MDUzXHU3Njg0XHU2QkNGXHU0RTAwXHU1OTA0Il0sWyJcdTYyMTFcdTg4QUJcdTRGNjBcdTYyRTVcdTYyQjEiXSxbIlx1NUI5RFx1OEQxRCBcdTYyMTFcdTUzRUZcdTRFRTVcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NEY2MFx1NzdFNVx1OTA1M1x1NEY2MFx1NjYyRlx1NjIxMVx1NzY4NFx1NEUwMFx1NTIwNyJdLFsiXHU0RjYwXHU2NjJGXHU2MjExXHU5NzAwXHU4OTgxXHU3Njg0XHU0RTAwXHU1MjA3Il0sWyJcdThGRDlcdTRFOUJcdTUxOTlcdTU3MjhcdTRGNjBcdTc2ODRcdTgxMzhcdTRFMEEiXSxbIlx1NUI5RFx1OEQxRCBcdTYyMTFcdTgwRkRcdTYxMUZcdTg5QzlcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1Nzk0OFx1Nzk3N1x1NUI4M1x1NEUwRFx1NEYxQVx1NkQ4OFx1NTkzMSJdLFsiXHU2MjExXHU1M0VGXHU0RUU1XHU2MTFGXHU4OUM5XHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTgwRkRcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NjIxMVx1NTNFRlx1NEVFNVx1NjExRlx1ODlDOVx1NTIzMFx1NEY2MFx1NzY4NFx1NTE0OVx1NzNBRiJdLFsiXHU2MjExXHU4MEZEXHU3NzBCXHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTUzRUZcdTRFRTVcdTYxMUZcdTg5QzlcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NjIxMVx1ODBGRFx1NzcwQlx1NTIzMFx1NEY2MFx1NzY4NFx1NTE0OVx1NzNBRiJdLFsiXHU2MjExXHU1M0VGXHU0RUU1XHU2MTFGXHU4OUM5XHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTgwRkRcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NTE0OVx1NzNBRiJdLFsiXHU2MjExXHU3M0IwXHU1NzI4XHU3N0U1XHU5MDUzXHU3Njg0XHU2QkNGXHU0RTAwXHU1OTA0Il0sWyJcdTYyMTFcdTg4QUJcdTRGNjBcdTYyRTVcdTYyQjEiXSxbIlx1NUI5RFx1OEQxRCBcdTYyMTFcdTUzRUZcdTRFRTVcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NEY2MFx1NzdFNVx1OTA1M1x1NEY2MFx1NjYyRlx1NjIxMVx1NzY4NFx1NEUwMFx1NTIwNyJdLFsiXHU0RjYwXHU2NjJGXHU2MjExXHU5NzAwXHU4OTgxXHU3Njg0XHU0RTAwXHU1MjA3Il0sWyJcdThGRDlcdTY2MkZcdTUxOTlcdTU3MjhcdTRGNjBcdTc2ODRcdTgxMzhcdTRFMEEiXSxbIlx1NUI5RFx1OEQxRCBcdTYyMTFcdTgwRkRcdTYxMUZcdTg5QzlcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1Nzk0OFx1Nzk3N1x1NUI4M1x1NEUwRFx1NEYxQVx1NkQ4OFx1NTkzMSJdLFsiXHU2MjExXHU1M0VGXHU0RUU1XHU2MTFGXHU4OUM5XHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTgwRkRcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NjIxMVx1NTNFRlx1NEVFNVx1NjExRlx1ODlDOVx1NTIzMFx1NEY2MFx1NzY4NFx1NTE0OVx1NzNBRiJdLFsiXHU2MjExXHU4MEZEXHU3NzBCXHU1MjMwXHU0RjYwXHU3Njg0XHU1MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTUzRUZcdTRFRTVcdTYxMUZcdTg5QzlcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXSxbIlx1NjIxMVx1ODBGRFx1NzcwQlx1NTIzMFx1NEY2MFx1NzY4NFx1NTE0OVx1NzNBRiJdLFsiXHU2MjExXHU1M0VGXHU0RUU1XHU2MTFGXHU4OUM5XHU1MjMwXHU0RjYwXHU3Njg0XHU1> MTQ5XHU3M0FGIl0sWyJcdTYyMTFcdTgwRkRcdTc3MEJcdTUyMzBcdTRGNjBcdTc2ODRcdTUxNDlcdTczQUYiXV0sInR5cGUiOjF9XSwidmVyc2lvbiI6MX0=]
[25928,2101]<0,450,0>Remember <450,401,0>those <851,350,0>walls <1201,150,0>I <1351,750,0>built
[28930,1851]<0,200,0>Well <200,300,0>baby <500,350,0>they're <850,552,0>tumbling <1402,449,0>down
[31882,2403]<0,200,0>And <200,150,0>they <350,349,0>didn't <699,203,0>even <902,501,0>put <1403,150,0>up <1553,350,0>a <1903,500,0>fight
[34935,1801]<0,200,0>They <200,150,0>didn't <350,450,0>even <800,350,0>make <1150,300,0>a <1450,351,0>sound
[37837,1901]<0,200,0>I <200,200,0>found <400,350,0>a <750,200,0>way <950,200,0>to <1150,150,0>let <1300,251,0>you <1551,350,0>in
[40738,2100]<0,200,0>But <200,200,0>I <400,350,0>never <750,350,0>really <1100,350,0>had <1450,200,0>a <1650,450,0>doubt
[43840,2103]<0,452,0>Standing <452,200,0>in <652,250,0>the <902,400,0>light <1302,200,0>of <1502,200,0>your <1702,401,0>halo
[46967,1750]<0,150,0>I <150,250,0>got <400,201,0>my <601,850,0>angel <1451,299,0>now
[49920,1650]<0,150,0>It's <150,300,0>like <450,200,0>I've <650,450,0>been <1100,550,0>awakened
[52820,1701]<0,200,0>Every <200,300,0>rule <500,251,0>I <751,200,0>had <951,350,0>you <1301,400,0>breakin'
[55672,1702]<0,200,0>It's <200,200,0>the <400,350,0>risk <750,350,0>that <1100,251,0>I'm <1351,351,0>takin'
[58674,2152]<0,200,0>I <200,401,0>ain't <601,449,0>never <1050,200,0>gonna <1250,200,0>shut <1450,251,0>you <1701,451,0>out
[62277,1699]<0,250,0>Everywhere <250,499,0>I'm <749,450,0>looking <1199,500,0>now
[64876,1749]<0,200,0>I'm <200,400,0>surrounded <600,200,0>by <800,250,0>your <1050,699,0>embrace
[67976,2002]<0,251,0>Baby <251,350,0>I <601,200,0>can <801,400,0>see <1201,301,0>your <1502,500,0>halo
[71078,1703]<0,154,0>You <154,199,0>know <353,200,0>you're <553,250,0>my <803,400,0>saving <1203,500,0>grace
[74035,1900]<0,200,0>You're <200,150,0>everything <350,200,0>I <550,650,0>need <1200,300,0>and <1500,400,0>more
[76885,1952]<0,200,0>It's <200,352,0>written <552,299,0>all <851,401,0>over <1252,200,0>your <1452,500,0>face
[79939,2051]<0,401,0>Baby <401,201,0>I <602,299,0>can <901,351,0>feel <1252,250,0>your <1502,549,0>halo
[83215,1102]<0,150,0>Pray <150,150,0>it <300,201,0>won't <501,150,0>fade <651,451,0>away
[84685,1651]<0,150,0>I <150,151,0>can <301,149,0>feel <450,150,0>your <600,201,0>halo <801,550,0>halo <1351,300,0>halo
[87186,2052]<0,149,0>I <149,150,0>can <299,151,0>see <450,301,0>your <751,349,0>halo <1100,651,0>halo <1751,301,0>halo
[90138,2202]<0,200,0>I <200,150,0>can <350,100,0>feel <450,150,0>your <600,451,0>halo <1051,451,0>halo <1502,700,0>halo
[93139,2102]<0,151,0>I <151,151,0>can <302,100,0>see <402,201,0>your <603,499,0>halo <1102,650,0>halo <1752,350,0>halo
[98193,1600]<0,150,0>Hit <150,150,0>me <300,251,0>like <551,199,0>a <750,350,0>ray <1100,300,0>of <1400,200,0>sun
[101143,1701]<0,401,0>Burning <401,200,0>through <601,199,0>my <800,601,0>darkest <1401,300,0>night
[103995,1749]<0,299,0>You're <299,200,0>the <499,200,0>only <699,401,0>one <1100,199,0>that <1299,251,0>I <1550,199,0>want
[106696,1801]<0,149,0>Think <149,152,0>I'm <301,450,0>addicted <751,299,0>to <1050,451,0>your <1501,300,0>light
[109848,1801]<0,250,0>I <250,250,0>swore <500,400,0>I'd <900,200,0>never <1100,401,0>fall <1501,300,0>again
[112850,1852]<0,250,0>But <250,200,0>this <450,450,0>don't <900,151,0>even <1051,400,0>feel <1451,201,0>like <1652,200,0>falling
[116203,1250]<0,149,0>Gravity <149,750,0>can't <899,351,0>forget
[118904,2453]<0,201,0>To <201,200,0>pull <401,199,0>me <600,200,0>to <800,201,0>the <1001,601,0>ground <1602,851,0>again
[121957,1651]<0,300,0>Feels <300,199,0>like <499,351,0>I've <850,249,0>been <1099,552,0>awakened
[124808,1700]<0,249,0>Every <249,301,0>rule <550,200,0>I <750,200,0>had <950,350,0>you <1300,400,0>breakin'
[128168,1351]<0,200,0>The <200,300,0>risk <500,200,0>that <700,300,0>I'm <1000,351,0>takin'
[130923,1504]<0,150,0>I'm <150,350,0>never <500,301,0>gonna <801,300,0>shut <1101,202,0>you <1303,201,0>out
[134127,1550]<0,550,0>Everywhere <550,250,0>I'm <800,450,0>looking <1250,300,0>now
[136927,1950]<0,150,0>I'm <150,400,0>surrounded <550,201,0>by <751,649,0>your <1400,550,0>embrace
[139978,2000]<0,300,0>Baby <300,200,0>I <500,250,0>can <750,450,0>see <1200,200,0>your <1400,600,0>halo
[143030,1700]<0,200,0>You <200,200,0>know <400,199,0>you're <599,201,0>my <800,600,0>saving <1400,300,0>grace
[145931,1850]<0,200,0>You're <200,600,0>everything <800,150,0>I <950,400,0>need <1350,200,0>and <1550,300,0>more
[148931,1651]<0,200,0>It's <200,350,0>written <550,350,0>all <900,350,0>over <1250,150,0>your <1400,251,0>face
[151985,1801]<0,351,0>Baby <351,250,0>I <601,200,0>can <801,400,0>feel <1201,201,0>your <1402,399,0>halo
[155088,1500]<0,199,0>Pray <199,201,0>it <400,300,0>won't <700,550,0>fade <1250,250,0>away
[156789,1602]<0,199,0>I <199,150,0>can <349,150,0>feel <499,151,0>your <650,150,0>halo <800,551,0>halo <1351,251,0>halo
[159191,2090]<0,150,0>I <150,149,0>can <299,151,0>see <450,250,0>your <700,641,0>halo <1341,450,0>halo <1791,299,0>halo
[162182,2154]<0,150,0>I <150,150,0>can <300,150,0>feel <450,150,0>your <600,503,0>halo <1103,751,0>halo <1854,300,0>halo
[165099,2101]<0,150,0>I <150,150,0>can <300,151,0>see <451,300,0>your <751,450,0>halo <1201,600,0>halo <1801,300,0>halo
[168361,1800]<0,150,0>I <150,100,0>can <250,150,0>feel <400,150,0>your <550,150,0>halo <700,699,0>halo <1399,401,0>halo
[170961,2203]<0,201,0>I <201,100,0>can <301,151,0>see <452,200,0>your <652,549,0>halo <1201,702,0>halo <1903,300,0>halo
[173964,2250]<0,150,0>I <150,200,0>can <350,100,0>feel <450,250,0>your <700,500,0>halo <1200,750,0>halo <1950,300,0>halo
[177315,2051]<0,150,0>I <150,150,0>can <300,150,0>see <450,200,0>your <650,600,0>halo <1250,450,0>halo <1700,351,0>halo
[185172,299]<0,299,0>Halo
[209365,1401]<0,450,0>Everywhere <450,400,0>I'm <850,201,0>looking <1051,350,0>now
[211866,1850]<0,200,0>I'm <200,500,0>surrounded <700,300,0>by <1000,450,0>your <1450,400,0>embrace
[215017,1800]<0,501,0>Baby <501,150,0>I <651,199,0>can <850,350,0>see <1200,301,0>your <1501,299,0>halo
[218100,1650]<0,200,0>You <200,151,0>know <351,249,0>you're <600,201,0>my <801,500,0>saving <1301,349,0>grace
[220852,1800]<0,250,0>You're <250,200,0>everything <450,500,0>I <950,400,0>need <1350,200,0>and <1550,250,0>more
[223903,1800]<0,200,0>It's <200,300,0>written <500,400,0>all <900,400,0>over <1300,200,0>your <1500,300,0>face
[227039,1752]<0,350,0>Baby <350,200,0>I <550,199,0>can <749,401,0>feel <1150,350,0>your <1500,252,0>halo
[230092,1551]<0,200,0>Pray <200,401,0>it <601,200,0>won't <801,499,0>fade <1300,251,0>away
[231794,1600]<0,100,0>I <100,150,0>can <250,199,0>feel <449,201,0>your <650,200,0>halo <850,500,0>halo <1350,250,0>halo
[234263,1951]<0,150,0>I <150,150,0>can <300,150,0>see <450,201,0>your <651,400,0>halo <1051,550,0>halo <1601,350,0>halo
[237064,2249]<0,150,0>I <150,149,0>can <299,101,0>feel <400,250,0>your <650,500,0>halo <1150,700,0>halo <1850,399,0>halo
[239965,2303]<0,200,0>I <200,150,0>can <350,150,0>see <500,150,0>your <650,600,0>halo <1250,651,0>halo <1901,402,0>halo
[243068,2150]<0,150,0>I <150,150,0>can <300,150,0>feel <450,150,0>your <600,550,0>halo <1150,650,0>halo <1800,350,0>halo
[245768,2454]<0,201,0>I <201,150,0>can <351,151,0>see <502,199,0>your <701,652,0>halo <1353,701,0>halo <2054,400,0>halo
[248672,2585]<0,200,0>I <200,150,0>can <350,150,0>feel <500,385,0>your <885,700,0>halo <1585,550,0>halo <2135,450,0>halo
[251758,261675]<0,149,0>I <149,150,0>can <299,150,0>see <449,201,0>your <650,701,0>halo <1351,851,0>halo <2202,849,0>halo

其中,language 列里面的 base64 编码内容解出来之后是下面的内容。

{
  "content": [
    {
      "language": 0,
      "lyricContent": [
        [
          "记住我修筑的那些墙"
        ],
        [
          "宝贝 他们坍塌下来"
        ],
        [
          "它们甚至没有抵抗"
        ],
        [
          "它们甚至没有发出声音"
        ],
        [
          "我找到一个方法让你进去"
        ],
        [
          "但是我从来没有怀疑"
        ],
        [
          "在你的光环的照耀之下"
        ],
        [
          "我现在有我的天使"
        ],
        [
          "就像我被唤醒了"
        ],
        [
          "我为你打破每一条规则"
        ],
        [
          "我所拥有的都是一场冒险"
        ],
        [
          "我会待在你身边"
        ],
        [
          "在我现在所知道的每一处"
        ],
        [
          "我被你拥抱"
        ],
        [
          "宝贝 我可以看到你的光环"
        ],
        [
          "你知道你是我的一切"
        ],
        [
          "你是我需要的一切"
        ],
        [
          "那全写在你的脸上"
        ],
        [
          "宝贝 我能感觉到你的光环"
        ],
        [
          "祈祷它不会消失"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "就像一缕阳光照耀在我身上"
        ],
        [
          "在我最黑暗的夜晚燃烧"
        ],
        [
          "你是唯一个我想要的人"
        ],
        [
          "你认为我沉迷于你的光环之下"
        ],
        [
          "我发誓我永远不会再失望"
        ],
        [
          "甚至感觉不到失望"
        ],
        [
          "记忆深刻 不能忘记"
        ],
        [
          "又一次把我甩回地面"
        ],
        [
          "感觉就我被唤醒了"
        ],
        [
          "我为你打破规则"
        ],
        [
          "我所拥有的一切都是一场冒险"
        ],
        [
          "我会待在你身边"
        ],
        [
          "在我知道的每一处"
        ],
        [
          "我被你拥抱"
        ],
        [
          "宝贝 我可以看到你的光环"
        ],
        [
          "你知道你是我的一切"
        ],
        [
          "你是我需要的一切"
        ],
        [
          "这些写在你的脸上"
        ],
        [
          "宝贝 我能感觉到你的光环"
        ],
        [
          "祈祷它不会消失"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "光环"
        ],
        [
          "我现在知道的每一处"
        ],
        [
          "我被你拥抱"
        ],
        [
          "宝贝 我可以看到你的光环"
        ],
        [
          "你知道你是我的一切"
        ],
        [
          "你是我需要的一切"
        ],
        [
          "这是写在你的脸上"
        ],
        [
          "宝贝 我能感觉到你的光环"
        ],
        [
          "祈祷它不会消失"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ],
        [
          "我可以感觉到你的光环"
        ],
        [
          "我能看到你的光环"
        ]
      ],
      "type": 1
    }
  ],
  "version": 1
}

很容易猜出,这个是歌词的中译版本。相当于把中译版本单独放起来,作为显示用(也只能显示,无法对中译版歌词做逐字显示。

你可能感兴趣的:(如何读取 KRC 格式的文件)