讀取、複寫MP3 Tag
MP3
別人寫成的套件:(https://github.com/mpatric/mp3agic/blob/master/src/main/java/com/mpatric/mp3agic/Mp3File.java)
範例做法: C#(https://dotblogs.com.tw/yc421206/archive/2009/08/14/10048.aspx)
參考資料:(https://stackoverflow.com/questions/1645803/how-to-read-mp3-file-tags)
Field
Length | Offsets | |
Tag | 3 | 0-2 |
Songname | 30 | 3-32 |
Artist | 30 | 33-62 |
Album | 30 | 63-92 |
Year | 4 | 93-96 |
Comment | 30 | 97-126 |
Genre | 1 | 127 |
MP3檔案會預留最後128個Byte用來當記錄、詳細資料,位置如上表格。
裡面的編碼是BIG5,當在讀取的時候要選對編碼,當然 最後輸出檔案的時候,也要選對編碼。
在做複寫動作的時候,要記得把原先的資料清空。
讀取檔案,並跳過前面,只要最後128Byte
Byte轉字串
因為整條byte拿去轉BIG5,會有字元遺失,所以要先分段切割。Arrays.copyOfRange(Byte[],startIndex,endIndex)
因為Windows系統是用BIG5,所以轉換回來。
字串轉Byte[]
參考資料:(https://stackoverflow.com/questions/18571223/how-to-convert-java-string-into-byte)
複寫檔案
參考資料:(https://www.journaldev.com/861/java-copy-file)
因為要修改整個檔案的最後128 byte,我參考複製檔案的方式,將前面複製完後,後面128 Byte另外處理。
成果
Last updated