/** * 读取某个指定的歌词文件,这个构造函数一般用于 拖放歌词文件到歌词窗口时调用的,拖放以后,两个自动关联 * * @param file * 歌词文件 * @param info * 歌曲信息 */ public Lyric(File file, PlayListItem info) { System.out.println(" Lyric file" + file); this.offset = info.getOffset(); this.file = file; this.info = info; init(file); initDone = true; }
/** * 用ID3V1标签的字节和歌名来初始化歌词 歌词将自动在本地或者网络上搜索相关的歌词并建立关联 * 本地搜索将硬编码为user.home文件夹下面的Lyrics文件夹 以后改为可以手动设置. * * @param songName * 歌名 * @param data * ID3V1的数据 */ public Lyric(final PlayListItem info) { this.offset = info.getOffset(); this.info = info; // this.during = info.getDuration(); this.file = info.getLyricFile(); log.info("传进来的歌名是:" + info.toString()); // 只要有关联好了的,就不用搜索了直接用就是了 if (file != null && file.exists()) { log.log(Level.INFO, "不用找了,直接关联到的歌词是:" + file); init(file); initDone = true; return; } else { // 否则就起一个线程去找了,先是本地找,然后再是网络上找 new Thread() { public void run() { doInit(info); initDone = true; } }.start(); } }
/** * 根据歌词内容和播放项构造一个 歌词对象 * * @param lyric * 歌词内容 * @param info * 播放项 */ public Lyric(String lyric, PlayListItem info) { this.offset = info.getOffset(); this.info = info; this.init(lyric); initDone = true; }