55[02:35.40]
56[02:37.83]以往为了自我挣扎
57[02:41.62]从不知 她的痛苦
58[02:52.02]
59[02:54.11]喜欢你 那双眼动人
60[03:00.13]笑声更迷人
61[03:02.38]
62[03:03.14]愿再可 轻抚你
63[03:08.77]
64[03:09.33]那可爱面容
65[03:11.71]
66[03:12.41]挽手说梦话
67[03:14.61]
68[03:15.45]像昨天 你共我
从上面可以看出这种格式前面是开始时间,从左往右一一对应分,秒,毫秒,后面就是歌词。所以我们要创建一个实体类来保存每一句的歌词信息。
[](()1.歌词实体类LrcBean
==========================================================================
1public class LrcBean {
2 private String lrc;//歌词
3 private long start;//开始时间
4 private long end;//结束时间
5
6 public String getLrc() {
7 return lrc;
8 }
9
10 public void setLrc(String lrc) {
11 this.lrc = lrc;
12 }
13
14 public long getStart() {
15 return start;
16 }
17
18 public void setStart(long start) {
19 this.start = start;
20 }
21
22 public long getEnd() {
23 return end;
24 }
25
26 public void setEnd(long end) {
27 this.end = end;
28 }
29}
每句歌词,我们需要开始时间,结束时间和歌词这些信息,那么你就会有疑问了?上面提到的歌词格式好像只有歌词开始时间,那我们怎么知道结束时间呢?其实很简单,这一句歌词的开始时间就是上一句歌词的结束时间。有了歌词实体类,我们就得开始对歌词进行解析了!
[](()2. 解析歌词工具类LrcUtil
==============================================================================
1public class LrcUtil {
2
3 /**
4 * 解析歌词,将字符串歌词封装成LrcBean的集合
5 * @param lrcStr 字符串的歌词,歌词有固定的格式,一般为
6 * [ti:喜欢你]
7 * [ar:.]
8 * [al:]
9 * [by:]
10 * [offset:0]
11 * [00:00.10]喜欢你 - G.E.M. 邓紫棋 (Gem Tang)
12 * [00:00.20]词:黄家驹
13 * [00:00.30]曲:黄家驹
14 * [00:00.40]编曲&