软件下载链接
酷我音乐ios版下载的音乐文件,通过同步助手等软件查看时,发现音乐文件都是一串数字命名。通过网上查找和自己尝试,发现那些文件都是音频文件改了文件名而已。只要修改回文件名,就能和正常的音乐一样播放了。
之前写了一个简单的Java程序实现了功能,但是没有提供打包好的程序供大家使用。最近特地写了一个简单的图形界面供下载使用。如有问题或改进建议可联系本人(在原文中评论即可)。
可直接点此链接下载打包好的exe程序使用。
https://github.com/jzj1993/iOS-KwMusic-Export-Tools/raw/master/iOS-KwMusic-Export-Tools.exe如果不是Windows系统,可下载打包好的jar程序使用(电脑上需要安装jre)。
https://github.com/jzj1993/iOS-KwMusic-Export-Tools/raw/master/iOS-KwMusic-Export-Tools.jar
使用方法说明
1、复制文件
首先利用同步助手等软件,从iOS设备(iPhone或iPad)中导出下载的音乐文件,放到电脑上的一个文件夹中。一般在图中的DownloadingSave和Music文件夹中。
然后找到数据库文件cloud.db
并复制出来,如图。
复制到电脑中的文件如图。
2、使用音乐导出工具
下载并双击打开音乐导出工具如图。如果不能运行,请在电脑上安装jre,具体方法可以百度搜索。
分别选择数据库文件cloud.db
和音乐文件保存的文件夹(注意将所有音乐文件都放到所选文件夹下,不能放到它的子文件夹中)。点击开始处理,即开始进行处理,处理完成后如图。
处理完成后的音乐。
使用本程序整理导出的音频文件,实测700多首音乐,只需不到两分钟即可完成。
软件实现
有兴趣了解本软件实现、有一定Java编程能力、有意改进本软件的读者可以继续往下看。
前台图形界面的实现
图形界面使用的是Java自带的Swing和AWT框架,GUI与交互部分的源码如下:
https://github.com/jzj1993/iOS-KwMusic-Export-Tools/blob/master/src/ClsMain.java
数据库操作支持库
数据处理方面,其本质就是从数据库文件读取信息,并据此修改文件名和移动。数据库的操作使用的是sqlitejdbc-v037-nested.jar
支持包。
后台数据部分的实现
从手机复制出cloud.db
数据库文件,为SQLite
数据库文件。用SQLite Database Browser
打开,看到里面和音乐关系比较密切的主要有三个数据表:
-
playlistsInfo
中保存着播放列表信息,字段title
为列表名称,字段id
为列表id
。 -
playlistMusics
保存了音乐和播放列表的对应关系,字段title
、artist
等为音乐信息,rid
为音乐资源id
,字段playlist_id
对应了所属播放列表id
。 -
musicResource
中是音乐信息和文件对应关系,字段file
为对应的文件名,format
为文件格式,rid
为音乐资源id
。
于是程序的工作流程是这样的:
- 首先从
musicResource
逐一读取每首音乐的rid
; - 通过
rid
在playlistMusics
中查找playlist_id
,可能找不到,也可能不止一个,因为同一首音乐可能在多个列表中,这里简单的取最大的playlist_id
,通常应该是相对比较新的播放列表; - 然后在
playlistsInfo
中找到playlist_id
对应的播放列表名,作为目标音乐的子文件夹; - 最后把源文件重命名为“歌手名 - 歌曲名.扩展名”,并移动到目标文件夹即可。
数据处理部分的源码如下:
https://github.com/jzj1993/iOS-KwMusic-Export-Tools/blob/master/src/Data.java
完整工程下载 / Fork me on GitHub:
https://github.com/jzj1993/iOS-KwMusic-Export-Tools注:因为我现在没有iOS设备,本文中有两张Itools的截图来自
http://blog.sina.com.cn/s/blog_4d5428240101bs5x.html