android lrc歌词解析,正则表达式练习: android 歌词解析lrc 转 txt 代码
//主要用到了java io 的基本知识 和 正则表达式
package com.su;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.widget.Toast;
public class LrcManager {
public void save(String content,String filePath) {//保存lrc
filePath = "/sdcard/lrc1.txt";
if(!filePath.endsWith(".txt") && !filePath.endsWith(".log"))
filePath += ".txt";
File file = new File(filePath);
try {
OutputStream outstream = new FileOutputStream(file);
OutputStreamWriter out = new OutputStreamWriter(outstream);
out.write(content);
out.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
public String read(){//读取lrc
String path = "/sdcard/lrc1.txt";
String content="";
//打开文件
File file = new File(path);
//如果path是传递过来的参数,可以做一个非目录的判断
if (file.isDirectory()){
//Toast.makeText(TestLrcActivity.this, "没有指定文本文件!", 1000).show();
}
else{
try {
InputStream instream = new FileInputStream(file);
if (instream != null) {
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
//分行读取
while (( line = buffreader.readLine()) != null) {
content += line + "\n";
}
instream.close();
}
}
catch (java.io.FileNotFoundException e) {
//Toast.makeText(TestLrcActivity.this, "文件不存在", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
return content;
}
public void deallrc(){//lrc to txt
Pattern pattern = Pattern.compile("\\[\\d{2}:\\d{2}.\\d{2}\\]");//Pattern+Matcher类构成正则表达式
File f1 = new File("/sdcard/lrc1.txt");
File f2 = new File("/sdcard/lrc2.txt");
BufferedReader reader1 = null;
FileWriter write1 = null;
try {
reader1 = new BufferedReader(new FileReader(f1));
write1 = new FileWriter(f2);
String line = null;
while ((line = reader1.readLine()) != null) {
for (int i = 0; i < line.length(); i++) {
Matcher m=pattern.matcher(line);
line = m.replaceAll("");
line = line.replaceAll("\\[offset:\\d{3}\\]","");//正则表达式使用replaceAll()方法
line = line.replace("ti","歌名");//替换字符串
line = line.replace("ar","歌手");
line = line.replace("al","专辑");
line = line.replace("by","Lrc歌词作者");
//line = line.replace("]","");
line = line.replace("url","歌词来源");
line = line.replace("null","");
}
if (line!="\n"&&line!=null&&line!=""&&line!="null") {
System.out.println(line);
write1.write(line+"\n");
}
}
} catch (IOException e) {
System.out.println("出现异常");
} finally {
try {
reader1.close();
write1.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
android lrc歌词解析,正则表达式练习: android 歌词解析lrc 转 txt 代码相关推荐
- android开发--mp3播放器项目源代码(xml文件解析,.lrc,.mp3文件下载,同时显示歌词)
一.mp3播放器源代码 1.MainActivity.java:在此中主要负责播放器首页的功能,包括服务器上的下载列表,和SD卡上已经下载的mp3文件列表package com.wyt.MP3play ...
- lrc歌词解析(正则表达式)与歌词卡拉ok显示的思路
一.从本地读取lrc文件 从本地读取文件,android提供了与java相同的io操作,只不过要在AndroidManifest.xml添加读写sdcard权限 <uses-permi ...
- android开发歌词滑动效果_android实现歌词自动滚动效果
最近在做Android 的MP3播放的项目,要实现歌词的自动滚动,以及同步显示. lyric的歌词解析主要用yoyoplayer里面的,显示部分参考了这里 ,这里只是模拟MP3歌词的滚动. 先上一下效 ...
- Android自定义View实战:简约风歌词控件
作者:jsyjst 前言 最近重构了之前的音乐播放器,添加了许多功能,比如歌词,下载功能等.这篇文章就让我们聊聊歌词控件的实现,先上效果图,如果感觉海星,就继续瞧下去! 看到这里,估计你对这个控件还有 ...
- 乐乐音乐:Android音乐播放器及动感(KTV)歌词相关博客汇总
相关简介 Java Swing PC版本乐乐音乐播放器 乐乐音乐PC播放器单机版本,支持ape,wav,flac,mp3等多种格式,支持动态ksc.hrc.krc歌词文件和支持和显示翻译歌词和音译歌词 ...
- Android自定义View实战:简约风歌词控件,Android开发者值得深入思考的几个问题
57[02:41.62]从不知 她的痛苦 58[02:52.02] 59[02:54.11]喜欢你 那双眼动人 60[03:00.13]笑声更迷人 61[03:02.38] 62[03:03.14]愿 ...
- android开发歌词滑动效果_android 实现歌词自动滚动+手指顺畅拖动
需求: 1.歌词可以跟随播放进度进行自动滑动: 2.可以手指进行歌词顺畅滑动: 3.当前歌词高亮,且置于屏幕的中心: 实现方式一: 也是网上可以搜到的做多的方式:自定义view,继承textview; ...
- Java播放歌词同步源码,Android 实现歌词同步
歌词同步的原理其实很简单: 歌词显示是一个线程, 音乐播放时一个线程,通过播放时间将歌词显示进度与播放进度同步起来. 网络标准的歌词格式是LRC. 我们看下一个LRC文档,其格式就一目了然了. [ti ...
- android歌词同步源码,Android KTV歌房歌词同步实现流程
歌词同步实现流程 1 功能实现流程图 目前运用最广的歌词文件LRC文件内容如下. [00:02.37] 即构KTV [00:03.12] [00:03.80] 作词:即构 [00:04.55] 作曲: ...
最新文章
- the server responded with a status of 404 (HTTP/1.1 404 Not Found)
- html5网站测试工具,基于HTML5网页的前端技术测试技巧
- JavaScript 存储Cookie
- [Remoting FAQ]Loading a Remoting Host On IIS得到BadImageFormatException
- 如何将一个JavaScript数组打乱顺序?
- 前端JAVASCRIPT模块化开发
- API不治,混合云何以统天下?
- 在windows平台上编写的python程序无法在_【判断题】在Windows平台上编写的Python程序无法在Unix平台运行。...
- 数据结构Java第四版pdf_数据结构与抽象:Java语言描述(原书第4版) 中文pdf完整版[131MB]...
- windows——运行命令大全(让你的电脑掌控在自己手中)
- 企业微信 Android端开发
- EXCEL数据行数达上线,读取发生错误
- 制作u盘winpe启动盘_U盘PE启动盘制作方法
- 风笑天社会研究方法第5版笔记和课后答案
- 笑着学Spring - (3) - Spring事务管理
- 超硬核!第16届CLK大会完整议程全公布!
- 【Unity】3D雷霆战机
- 使用IDEA连接本地数据库
- unity 3d iphone android 通用,在Unity3D中使用iPhone原生UI
- 初识3D Game——战地3,使命召唤8:现代战争3,Crysis 2:孤岛危机2
热门文章
- 地产网站建设步骤-企业房地产网站建设策划技巧及方案
- Collection概述与基本使用
- Windows7(64位)环境下安装openssl详细步骤+图解
- Android获取电池电量信息的几种方式
- fastboot出现错误:no permissions fastboot
- adb 指令创建文件和文件夹
- 技多不压身,语言越多越好?
- 【算法】【题解】【usaco】 最受欢迎的牛
- 关于大疆御2行业进阶版(M2EA)热红外照片温度信息提取问题
- 武汉大学计算机学院出国,武汉大学本科生出国(境)交流学习奖学金院系汇总表.PDF...