karaoke.songname := '你要的爱';
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');karaoke.add('00:14.809', '00:16.626', '外面正在下着雨', '271,200,195,179,271,266,435');
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');
由其格式可知:行歌词对英文和空格,都用了[]来包住,其实该歌词解析起来,难度还是挺大的。。。。karaoke.songname := '{歌名}';
karaoke.singer := '{歌手}';
karaoke.add('{行开始时间}', '{行结束时间}', '{行歌词}', '{每个字持续的时间:单位为 ms }');
2.2TRC歌词该歌词是天天动听使用的动感歌词,由于网上的资源比较少,我直接引用我参考的博客内容[ar:胡彦斌]
[ti:当你要离开的时候]
[al:]
[total:243000]
[offset:0]
[by:ttpod]
[00:16.54]<250>当<300>你<1852>要<249>离<452>开<201>的<451>时<3801>候
[00:24.32]<200>我<200>们<1201>走<250>过<250>了<251>无<350>数<350>个<600>路<3851>口
由其格式可知:字前面的数字,为该字的持续时间。由于没有行结束时间,解析起来,还是有点难度。[{行开始时间}]<{每个字持续时间:单位ms}>{字}<{每个字持续时间:单位ms}>字
2.3KRC歌词该歌词是酷狗使用的动感歌词,无错,加密的。不过网上早已有人破解了,下面给出破解的文本内容,该歌词不仅是加密,还对歌词内容进行了压缩处理。[id:$00FF2B12]
[ar:李健]
[ti:美若黎明]
[by:]
[hash:e1c2628fad0a46f94df6b8b071df078f]
[al:]
[sign:]
[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>健
由其格式可知:我表示 <0,350,0>最后一个0是什么意思,我也不知道,但是这并不影响我们对该歌词的解析。。。。[{行开始时间},{行持续时间}]<{字开始时间},{字持续时间},0>{字}<{字开始时间},{字持续时间},0>{字}
2.4HRCX歌词该歌词是我在弄《乐乐音乐》音乐播放器时,自定义的一种歌词格式(happy lyrics),它是可以精确到【字】的。当然,我在生成该歌词时,也对歌词的内容进行了压缩处理。下面给出解压后的文本内容:[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>');
由其格式可知:歌词内容方面参考了ksc歌词,用[]来包住,将重复的歌词(高潮部分)归为一行,这也算是一种优化。haplayer.lrc('<{行开始时间:单位ms},{行结束时间:单位ms}>','{歌词}','<{字持续时间}>');
haplayer.lrc('<{行开始时间:单位ms},{行结束时间:单位ms}><{行开始时间:单位ms},{行结束时间:单位ms}>','{歌词}','<{字持续时间}><{字持续时间}>');
3总结与分析不论动感歌词是什么格式,内容怎样变,它们都是可以归纳为几个属性来设计实体类:3.1标签3.2行开始时间3.3行结束时间3.4行歌词3.5歌词每个字持续时间4实体类设计附上歌词实体类、行歌词实体类、标签实体类4.1歌词实体(LyricsInfo)

