淺談動感歌詞-歌詞解析篇

1引言

要解析動感歌詞文件,首先就要清楚動感歌詞的文件內容,固然歌詞的文件內容,咱們已經在分析篇的文章裏面介紹過了,這裏將再也不作詳細的介紹,當咱們能夠把歌詞成功解析出來後,再結合歌詞生成篇,一個簡單的歌詞格式轉換工具也就出來了。git

2歌詞解析

歌詞解析,其實就是把文件裏面的標籤內容、歌詞時間和歌詞內容解析出來,固然,爲了後期拓展其它的動感歌詞格式,咱們這裏要好好設計一番。github

2.1實體類

2.1.1歌詞讀取器

主要用來約束動感歌詞讀取器要實現的方法,可用於拓展實現其它的動感歌詞格式。正則表達式

2.1.2歌詞實體

 

2.1.3行歌詞實體

 

2.1.4標籤實體

 

2.2ksc解析

2.2.1文件內容

karaoke.songname := '你要的愛';app

karaoke.singer := '戴佩妮';工具

karaoke.add('00:03.298', '00:06.771', '雖然常常夢見你', '467,215,195,936,282,568,810');加密

karaoke.add('00:09.571', '00:12.105', '仍是毫無頭緒', '245,164,211,261,451,1202');spa

karaoke.add('00:14.809', '00:16.626', '外面正在下着雨', '271,200,195,179,271,266,435');.net

karaoke.add('00:17.245', '00:19.908', '今天是星期幾', '195,143,175,379,758,1013');設計

karaoke.add('00:20.492', '00:22.089', '[but ][i ][don`t ][know]', '179,190,286,942');blog

2.2.2歌詞讀取器實體

 

2.2.3歌詞解析部分代碼

 

2.3krc解析

2.3.1文件內容

[id:$00FF2B12]

[ar:李健]

[ti:美若黎明]

[by:]

[hash:e1c2628fad0a46f94df6b8b071df078f]

[al:]

[sign:]

[qq:]

[total:267096]

[offset:10000]

[language:eyJjb250ZW50IjpbXSwidmVyc2lvbiI6MX0=]

[1679,1550]<0,399,0>做<399,200,0>詞<599,250,0>:<849,301,0>李<1150,400,0>健

[3229,1650]<0,350,0>做<350,300,0>曲<650,350,0>:<1000,350,0>李<1350,300,0>健

2.3.2歌詞讀取器實體

 

2.3.3歌詞解析部分代碼

 

2.4hrcx解析

2.4.1文件內容

[ti:右手戒指];

[total:272706];

[ar:金海心];

[offset:0];

[by:HappyPlayer-PC];

haplayer.lrc('<1270,9630>','金海[心 ][- ]右手戒指','<1010,780,830,1410,800,1210,1410,910>');

haplayer.lrc('<18710,19810>','[la ][la ][la ]','<300,400,400>');

haplayer.lrc('<20020,22840><77150,79970><163120,165840><191920,194740>','是你夢中的女郎','<200,300,400,300,510,500,610><310,400,300,510,400,400,500><200,510,400,400,410,500,300><210,400,300,400,400,510,600>');

2.4.2歌詞讀取器實體

 

2.4.3歌詞解析部分代碼

 

3總結

通過以上歌詞的解析,我以爲酷狗的歌詞解析起來是最爲輕鬆的。

不過歌詞的解析的過程,大體可歸納爲以下幾點:

(1)讀取文件內容,若是歌詞內容加密的,要進行解密

(2)以行分割文件內容,獲得每一行的內容

(3)匹配行內容,判斷是標籤行、仍是歌詞內容行

(4)若是是標籤行內容,則根據標籤類型解析內容

(5)若是是歌詞內容行,則根據歌詞格式解析歌詞內容(主要用到正則表達式)

4參考

酷狗的krc歌詞文件的解析

5源碼

歌詞解析和生成器

6最後

下一篇,將介紹動感歌詞的顯示。若有侵權,麻煩告知。

相關文章
相關標籤/搜索