2012-10-03 149 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,因此您可以将它包含在您的应用程序中并仍然销售它。 –