上两篇文章讲述了歌词的在线获取,数据的存储,这一片我们讲解一下歌词的显示
我们现在是要在控制台下显示歌词,同时需要按照特定时间的时间显示出特定的歌词,标准的歌词形式如下:
[ti:红玫瑰] [ar:陈奕迅] [al:认了吧] [by:|.傑…] [00:01.64]红玫瑰 [00:04.95]陈奕迅 [00:06.07]《认了吧》 [00:11.08]|.傑… [00:16.17]梦里梦到醒不来的梦 [00:18.82]红线里被软禁的红 ............
当前也有一些歌词采用省略写法,如下面的这种:
[02:50.76][01:57.23]你的背包让我走的好缓慢 [02:58.64][02:05.09]总有一天陪着我腐烂 [03:05.61][02:12.54]你的背包对我沉重的审判 [03:22.09][03:13.57][02:20.39]借了东西为什么不还
现在我们需要做的是去解析歌词,将相应的歌词内容和时间提取出来,我们拿什么来保存提取出来歌词呢,考虑到歌词的先后顺序,使用TreeMap是再好不过了,TreeMap可以将放入的键值对按照键的大小排序,当然也可以自己重写排序方法,这里对于上述歌词中的第二种情况,可以直接分割后放入TreeMap,显示歌词的时候完全可以按照队列的相关操作,一直从最前面取歌词。
1 歌词的获取
歌词的操作不仅仅只是一个简单的提取,获取一首歌曲的歌词流程如下:
2 歌词的解析
我们可以根据歌词中的[]中括号当作歌词分割的标准,这个具体分割代码可以从下面地址找到。将分割后的歌词与时间保存在TreeMap中即可。
同时我们也可以加入一些有关歌词过滤的操作,这个大家可以自行添加。
相关代码大家可以直接到http://git.oschina.net/honest/terminal-play-music中查看
歌词获取解析结束,下一篇将会继续讲解音乐播放器(4)--Mp3歌曲播放与控制
转载请注明原帖地址:http://blog.csdn.net/dliyuedong/article/details/14648087