標籤:
軟體下載連結
酷我音樂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
本文由jzj1993原創,轉載請註明來源:http://www.hainter.com/ios-kwmusic-export-tools
iOS酷我音樂匯出工具使用說明和原理介紹(提供下載連結及工程源碼)