最近做了一个android的音乐播放器,下面将介绍歌词同步显示的实现。网上关于这一块的参考实例,多数人推荐了Yoyoplayer。YOYOPlayer是一个用JAVA编写的,跨平台的音乐播放软件.集播放,歌词显示于一体,并且开放源代码,感兴趣的朋友可以自行google。
一、LRC歌词文件的解析
先要了解LRC文件的格式,可以参考:http://baike.baidu.com/view/80650.htm。总体思路是这样的,按行读入歌词文本,忽略每行中的注释,即“[:]”后的内容;再解析标识标签(ID-tags);最后解析出时间标签及其对应的歌词语句。具体实现如下:
1、忽略注释
private String removeComment(String line)
{
Matcher m = Pattern.compile("\\[:\\]").matcher(line);
String str = line;
while (m.find())
{
if (m.start() == 0)//整行都是注释
str = null;
else
str = line.substring(0, m.start());
}
return str;
}
2、解析标识标签
private void getLyricIdTags(String line)
{
Matcher m = Pattern.compile("\\