要解析動感歌詞文件,首先就要清楚動感歌詞的文件內容,固然歌詞的文件內容,咱們已經在分析篇的文章裏面介紹過了,這裏將再也不作詳細的介紹,當咱們能夠把歌詞成功解析出來後,再結合歌詞生成篇,一個簡單的歌詞格式轉換工具也就出來了。git
歌詞解析,其實就是把文件裏面的標籤內容、歌詞時間和歌詞內容解析出來,固然,爲了後期拓展其它的動感歌詞格式,咱們這裏要好好設計一番。github
主要用來約束動感歌詞讀取器要實現的方法,可用於拓展實現其它的動感歌詞格式。正則表達式
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
[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>健
[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>');
通過以上歌詞的解析,我以爲酷狗的歌詞解析起來是最爲輕鬆的。
不過歌詞的解析的過程,大體可歸納爲以下幾點:
(1)讀取文件內容,若是歌詞內容加密的,要進行解密
(2)以行分割文件內容,獲得每一行的內容
(3)匹配行內容,判斷是標籤行、仍是歌詞內容行
(4)若是是標籤行內容,則根據標籤類型解析內容
(5)若是是歌詞內容行,則根據歌詞格式解析歌詞內容(主要用到正則表達式)
下一篇,將介紹動感歌詞的顯示。若有侵權,麻煩告知。