2012-10-03 140 views
1

我有讀取MP3標籤的代碼,它的最後128個字節的文件讀取標籤

try{ 
    final int TAG_LONG = 128; 
    fileInputStream = new FileInputStream(file.getAbsolutePath()); 
    byte[] bytesSong = new byte[128]; 
    byte[] byteTitleArry = new byte[length]; 
    for (int i = 0; i < 30; i++) { 
     byteTitleArry[i] = arrayTag[3+ i]; 
    } 
    String title = new String(byteTitleArry); 
} 

當標題標籤(或enything人)寫英語此代碼的工作就好了字符,但在標籤是在非英語字符的值,我得到了錯誤的值,所以我用:

String title = new String(byteTitleArry, "ISO-8859-8"); 

,但是這還不夠通用,是有辦法找出什麼是標籤的Unicode ?

+0

這似乎是相關的:http://stackoverflow.com/questions/499010/java-how-to-determine-the-correct-charset-encoding-of-a-stream – yiannis

+0

我想你錯過了瞭解我,我想問的是如果mp3文件結構持有有關如何標記正在編碼的信息。 –

回答

0

嘗試使用ID3庫來替代,例如JAudioTagger

+0

它可能是有用的,但我正在開發一個應用程序,我打算在Play商店上出售它,因此我更願意編寫自己的代碼 –

+0

JAudioTagger是LGPL,因此您可以將它包含在您的應用程序中並仍然銷售它。 –