lrc歌词解析(正则表达式)与歌词卡拉ok显示的思路

本文介绍如何在Android应用中从本地读取LRC歌词文件,使用正则表达式解析歌词时间点,以及如何显示卡拉OK效果。通过读取SD卡上的LRC文件,使用BufferedReader读取内容,然后利用正则表达式提取歌词时间信息,存储在Map中,最终使用TreeMap保持时间顺序。
摘要由CSDN通过智能技术生成
 一、从本地读取lrc文件
     从本地读取文件,android提供了与java相同的io操作,只不过要在AndroidManifest.xml添加读写sdcard权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    只要把路径传输进去,就可以取得io流。

File file=new File(FileUril.SDPATH  + str);

在项目包src/file/FileUril.java中定义了静态的变量
Public SDPATH=Environment.getExternalStorageDirectory()+"/";
此句取得android的根目录("/"),这样就可以通过str这个参数定位到路径里。取得io流FileInputStream in=new FileInputStream(file);然后封装io流,且以UTF-8的格式,BufferedReaderb=newBufferedReader(new InputStreamReader(in,"utf-8")),接下来通过b.readLine()读取一行歌词数据,当读到结束时返回空。通过while循环就可以读取lrc所有数据。
代码如下:

public LrcParser(String str){
index=0;
musicDate=new ArrayList<String>();
map=new HashMap<Long,String>();
    String s="";
File file=new File(FileUril.SDPATH+str);
      try {
FileInputStream in=new FileInputStream(file);
 BufferedReader b=new BufferedReader(new InputStreamReader(in,"utf-8"));while((s=b.readLine())!=null){
parser(s);
}
treeMap=ne
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值