现在的位置: 首页 > 综合 > 正文

android 歌词同步实现

2013年10月06日 ⁄ 综合 ⁄ 共 1214字 ⁄ 字号 评论关闭
相信很多朋友都有做过android音乐播放器吧,但只是播放歌曲会不会很单调呢?很多朋友想过要做歌词同步吧,那么我就和大家分享一下我的个人经验吧;
其实歌词同步的步骤很简单:
1.解析LRC歌词文件
2.LRC 歌词显示
3. 歌词与播放音乐同步

一、读取歌词文件:
/**
* 读取文件
* */
public String read(String path){
TreeMap lrc_read = new TreeMap();
String data = "";

try {
File saveFile = new File(path);
FileInputStream stream = new FileInputStream(saveFile);
BufferedReader br = new BufferedReader(new InputStreamReader(
stream, "GB2312"));

int i = 0;
while ((data = br.readLine()) != null) {
data = data.replace("[", "");
data = data.replace("]", "@");

String splistdata[] = data.split("@");
String lrcContenet = splistdata[splistdata.length - 1];
for (int j = 0; j iterator = lrc_read.keySet().iterator();
lrcObject oldval = null;
int i = 0;
StringBuffer sb = new StringBuffer();
while (iterator.hasNext()) {
Object ob = iterator.next();
lrcObject val = (lrcObject) lrc_read.get(ob);
if (oldval == null)
oldval = val;
else {
lrcObject item1 = new lrcObject();
item1 = oldval;
item1.timeline = val.begintime - oldval.begintime;
lrc_map.put(new Integer(i), item1);
sb.append(String.format("[%04d]-[%04d]-%s/n", item1.begintime,
item1.timeline, item1.lrc));
i++;
oldval = val;
}
}
data = sb.toString();
String da = data;

return data;
}

  /**

  * 得到当前正在播放的那一句的下标 不可能找不到,因为最开头要加一句 自己的句子 ,所以加了以后就不可能找不到了

  *

  * @return 下标

  */

  private int getNowSentenceIndex(long t) {

  for (int i = 0; i

抱歉!评论已关闭.