android lrc歌词显示

  歌词双行交叉显示,代码不完善,兼容性差,还有待改进,进入正文:

以下为旧版代码,新版lrc解析代码已经写完,全面修复兼容性,请直接参考:http://www.qylk.blog.163.com/blog/static/134687356201162023117621/

先定义一个存放每句歌词的类,它定义了每句歌词的起始时间,持续时间,及每句歌词正文,相当于C语言的结构体。

public class LRCbean {
 private int beginTime=0;
 public int getBeginTime() {
  return beginTime;

 private int  lineTime=0;
 private String lrcBody = null;
 }
 public void setBeginTime(int beginTime) {
  this.beginTime = beginTime;
 }
 public int getLineTime() {
  return lineTime;
 }
 public void setLineTime(int lineTime) {
  this.lineTime = lineTime;
 }
 public String getLrcBody() {
  return lrcBody;
 }
 public void setLrcBody(String lrcBody) {
  this.lrcBody = lrcBody;
 }
}

 


歌词解析类如下:

public class LrcUtils {
 private  TreeMap<Integer, LRCbean> read(File path){//读取歌词
  TreeMap<Integer, LRCbean> lrc_read = new TreeMap<Integer, LRCbean>();//临时表
     String data =null;
     BufferedReader br = null;
     FileInputStream stream = null;
  try {
   stream = new FileInputStream(path);//读入歌词文件流
            br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));//向内存写入
  } catch (Exception e) {}
  try {
   while((data=br.readLine())!=null){//逐行读取
    if (data.length()>6){//此行有歌词
     if (data.charAt(3)==':'&&data.charAt(6)=='.'){//从歌词正文开始
      data = data.replace("[", "");
      data = data.replace("]", "@");
      data = data.replace(".", ":");
      String lrc[] = data.split("@");//将时间与歌词分开
      String lrcContent= null;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值