Java讀MP3 文件的頭信息(ID3V1)
作者:linminghao 發(fā)文時間:2006.04.07 來源:網(wǎng)易部落
【Java專區(qū)】 【安全專區(qū)】 【網(wǎng)管專區(qū)】 【linux專區(qū)】 【進入論壇】 【IT博客】**//**
* Created on 2005-8-6 5:10:29
* @author 糊涂鬼
*/
public class ReadMp3ID3v1Info {
private static final int TAG_SIZE = 128;
private static final int TITLE_SIZE = 30;
private static final int ARTIST_SIZE = 30;
private static final int ALBUM_SIZE = 30;
private static final int YEAR_SIZE = 4;
private static final int COMMENT_SIZE = 29;
private static final int TRACK_LOCATION = 126;
private static final int GENRE_LOCATION = 127;
private static final int MAX_GENRE = 255;
private static final int MAX_TRACK = 255;
private static final String ENC_TYPE = "Cp437";
private static final String TAG_START = "TAG";
public static void main(String[] args){
try {
File mp3 = new File("F:/音樂/MP3/英文女歌手/Madonna - Music.mp3");
RandomAccessFile raf = new RandomAccessFile( mp3, "r" );
raf.seek(raf.length() - TAG_SIZE);
byte[] buf = new byte[TAG_SIZE];
raf.read(buf, 0, TAG_SIZE);
String tag = new String(buf, 0, TAG_SIZE, "Cp437");
int start = TAG_START.length();
System.out.println("文件名: " + mp3.getName());
System.out.println("標題 : " + tag.substring(start, start += TITLE_SIZE).trim());
System.out.println("藝術家: " + tag.substring(start, start += ARTIST_SIZE).trim());
raf.close();
System.out.println("====================================");
File mp32 = new File("F:/音樂/MP3/英文組合/blue - you make me wanna.mp3");
raf = new RandomAccessFile( mp32, "r" );
raf.seek(raf.length() - 128);
raf.read(buf, 0, 128);
tag = new String(buf, 0, 128, "Cp437");
start = TAG_START.length();
System.out.println("文件名: " + mp32.getName());
System.out.println("標題 : " + tag.substring(start, start += 30).trim());
System.out.println("藝術家: " + tag.substring(start, start += 30).trim());
raf.close();
} catch (Exception e) {
}
}
}
/**//**
* Created on 2005-8-6 5:10:29
* @author 糊涂鬼
*/
public class ReadMp3ID3v1Info {
private static final int TAG_SIZE = 128;
private static final int TITLE_SIZE = 30;
private static final int ARTIST_SIZE = 30;
private static final int ALBUM_SIZE = 30;
private static final int YEAR_SIZE = 4;
private static final int COMMENT_SIZE = 29;
private static final int TRACK_LOCATION = 126;
private static final int GENRE_LOCATION = 127;
private static final int MAX_GENRE = 255;
private static final int MAX_TRACK = 255;
private static final String ENC_TYPE = "Cp437";
private static final String TAG_START = "TAG";
public static void main(String[] args){
try {
File mp3 = new File("F:/音樂/MP3/英文女歌手/Madonna - Music.mp3");
RandomAccessFile raf = new RandomAccessFile( mp3, "r" );
raf.seek(raf.length() - TAG_SIZE);
byte[] buf = new byte[TAG_SIZE];
raf.read(buf, 0, TAG_SIZE);
String tag = new String(buf, 0, TAG_SIZE, "Cp437");
int start = TAG_START.length();
System.out.println("文件名: " + mp3.getName());
System.out.println("標題 : " + tag.substring(start, start += TITLE_SIZE).trim());
System.out.println("藝術家: " + tag.substring(start, start += ARTIST_SIZE).trim());
raf.close();
System.out.println("====================================");
File mp32 = new File("F:/音樂/MP3/英文組合/blue - you make me wanna.mp3");
raf = new RandomAccessFile( mp32, "r" );
raf.seek(raf.length() - 128);
raf.read(buf, 0, 128);
tag = new String(buf, 0, 128, "Cp437");
start = TAG_START.length();
System.out.println("文件名: " + mp32.getName());
System.out.println("標題 : " + tag.substring(start, start += 30).trim());
System.out.println("藝術家: " + tag.substring(start, start += 30).trim());
raf.close();
} catch (Exception e) {
}
}
}
運行的結果是:
文件名: Madonna - Music.mp3
標題 : Music
藝術家: Madonna
====================================
文件名: blue - you make me wanna.mp3
標題 : U Make Me Wanna
藝術家: Blue