时间:2021-05-19
本文实例讲述了java实现酷狗音乐临时缓存文件转换为MP3文件的方法。分享给大家供大家参考,具体如下:
酷狗临时缓存文件,其实已经是吧MP3文件下载好了,只是名字看上去好像是通过md5算法重命名的。
酷狗在缓存文件的时候会同时缓存歌词。这个程序就是根据md5管理对应的歌词文件和缓存文件,然后把缓存文件改成 歌曲名+.mp3格式。
原谅我取这么长也不知道对不对的类名。
package com.zhou.run;import java.io.File;import java.util.HashMap;import java.util.Map;public class KugouTempFileToMp3AndModifyNameToTrueName { public static String KGTEMP = ".kgtemp"; public static String KRC = "krc"; public void Change(String tempPath, String krcPath) { File temp = new File(tempPath); File krc = new File(krcPath); if (temp.exists() && temp.getName().endsWith(KGTEMP)) { String filename = temp.getName(); String filemd5 = filename .substring(0, filename.lastIndexOf(KGTEMP)); if (!krc.exists()) return; String krcname = krc.getName(); String krcmd5 = krcname.substring(krcname.lastIndexOf("-") + 1, krcname.lastIndexOf(KRC) - 1); String mp3name = krcname.substring(0, krcname.lastIndexOf("-")); if (krcmd5.equals(filemd5)) { String path = temp.getPath().substring(0, temp.getPath().lastIndexOf("\\")); File mp3File = new File(path + "\\" + mp3name + ".mp3"); temp.renameTo(mp3File); } System.out.println(filename + " " + filemd5); System.out.println(krcname + " " + mp3name + " " + krcmd5); } } public void ChangeByDir(String tempPath,String krcPath){ Map<String,File> temps = fileMd5Map(tempPath); Map<String,String> mp3Names = krcNameMd5Map(krcPath); for(String key :temps.keySet()){ File f = temps.get(key); if(f.exists()){ String path = f.getPath().substring(0, f.getPath().lastIndexOf("\\")); String mp3Name = mp3Names.get(key); File mp3File = new File(path + "\\" + mp3Name + ".mp3"); if(f.renameTo(mp3File)){ System.out.println(f.getName()+" to "+mp3File.getName()); System.err.print(" SUCCESS"); } } } } public Map<String, File> fileMd5Map(String path) { File dirFile = new File(path); Map<String, File> map = null; if (dirFile.isDirectory()) { map = new HashMap<String, File>(); for (File f : dirFile.listFiles()) { if (f.exists()&&f.isFile()&& f.getName().endsWith(KGTEMP)) { String filename = f.getName(); String filemd5 = filename.substring(0, filename.lastIndexOf(KGTEMP)); map.put(filemd5, f); } } } return map; } public Map<String,String> krcNameMd5Map(String path){ File dirFile = new File(path); Map<String, String> map = null; if (dirFile.isDirectory()) { map = new HashMap<String, String>(); for (File f : dirFile.listFiles()) { if (f.exists()&&f.isFile()&& f.getName().endsWith(KRC)) { String krcname = f.getName(); if(!krcname.contains("-"))continue; String krcmd5 = krcname.substring(krcname.lastIndexOf("-") + 1, krcname.lastIndexOf(KRC) - 1); String mp3name = krcname.substring(0, krcname.lastIndexOf("-")); map.put(krcmd5, mp3name); } } } return map; }}public static void main(String[] args) { KugouTempFileToMp3AndModifyNameToTrueName ktf = new KugouTempFileToMp3AndModifyNameToTrueName(); String tempDir ="D:/KuGou/mp3"; String krcDir="D:/KuGou/Lyric"; ktf.ChangeByDir(tempDir, krcDir);}Change(string,string) 方法只是用来测试用的。调一下字符串之类的
主要使用ChangeByDir方法,参数是临时文件的文件夹和歌词文件的文件夹
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近小编购买了一些cd需要将这些文件转换为mp3格式,方便汽车播放需要工具:光驱肯定要用的1、酷狗音乐播放器软件名称:酷狗音乐播放软件酷狗音乐v9.1.74官方
x2m付费文件转换mp3的方法是: 1、首先,点击电脑桌面中的酷狗音乐软件。然后点击屏幕上方的多功能图标。 2、接着点击格式转换,然后点击添加文件。 3、
手机上的酷狗是不能把歌曲格式转换成MP3格式的,酷狗转换歌曲文件格式可以在电脑端操作,具体步骤如下: 1、打开酷狗,进入主界面。点击主界面的“本地音乐”按钮,
本文实例讲述了Java编程实现获取mp3时长及播放mp3文件的方法。分享给大家供大家参考,具体如下:所需包为jaudiotagger-2.2.6-SNAPSHO
mp3显示文件格式不支持可能是MP3文件的比特率过高引起的。建议把文件进行转换,然后就可以播放了。 Mp3是一种能播放音乐文件的播放器,主要由存储器(存储卡)