package org.kymjs.music.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import org.kymjs.music.bean.Music; import org.kymjs.music.ui.widget.DefaultLrcBuilder; import org.kymjs.music.ui.widget.LrcRow; /** * 歌词界面帮助类 * * @author kymjs * */ public class LyricHelper { public List<LrcRow> resolve(Music music) { StringBuilder lrc = scanLrc(music); List<LrcRow> rows = null; if (lrc != null) { // 解析歌词 DefaultLrcBuilder builder = new DefaultLrcBuilder(); rows = builder.getLrcRows(lrc.toString()); } return rows; } /** * 从SD卡中查找是否有歌词,如果有就读取 */ private StringBuilder scanLrc(Music music) { StringBuilder lrc = null; FileUtils fileUtils = new FileUtils(); File file = new File(fileUtils.getSavePath() + "/" + music.getTitle() + ".lrc"); if (file.exists()) { lrc = readLrc(music, file); } return lrc; } /** * 从文件读取 */ private StringBuilder readLrc(Music music, File file) { BufferedReader br = null; StringBuilder lrcContent = new StringBuilder(); try { br = new BufferedReader(new InputStreamReader(new FileInputStream( file), "gbk")); String str = null; while ((str = br.readLine()) != null) { lrcContent.append(str).append("\r\n"); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return lrcContent; } }