标签:随机 ase 偏移量 规则 baidu 常见 实现 image 文件的
参见:http://jingyan.baidu.com/article/03b2f78c4d5eae5ea237aee7.html
一个规则的MP3文件大致含有3个部分:
其中,
TAG_V1中包含的信息
TAG_V1部分是MP3文件的最后128byte的内容.期中包括的信息有:
常见到有人说获取不到MP3信息,或者获取到的信息是一堆乱码.
解决办法将TAG_V1中的字节信息转换成字符串时没有指定字符编码(一般用"utf-8")而出现的;
如果想获取关于MP3文件的更多信息,可以通过解析TAG_V2中的字节来获取.
1.以随机读写方式打开一个MP3文件
2.将文件指针偏移量移动到文件长度倒数128位
3.判断标签头"TAG"是否存在
3.读取TAG_V1中的各个内容
4.关闭文件
byte buf = new byte[128];//初始化标签信息的byte数组
RandomAccessFile raf = new RandomAccessFile(mp3, "r");//随机读写方式打开MP3文件
raf.seek(raf.length() - 128);//移动到文件MP3末尾
raf.read(buf);//读取标签信息
raf.close();//关闭文件
if(buf.length != 128){//数据长度是否合法
throw new Exception("MP3标签信息数据长度不合法!");
}
if(!"TAG".equalsIgnoreCase(new String(buf,0,3))){//标签头是否存在
throw new Exception("MP3标签信息数据格式不正确!");
}
String SongName = new String(buf,3,30,"utf-8").trim();//歌曲名称
String Artist = new String(buf,33,30,"utf-8").trim();//歌手名字
String Album = new String(buf,63,30,"utf-8").trim();//专辑名称
String Year = new String(buf,93,4,"utf-8").trim();//出品年份
String Comment = new String(buf,97,28,"utf-8").trim();//备注信息
标签:随机 ase 偏移量 规则 baidu 常见 实现 image 文件的
原文地址:http://www.cnblogs.com/lexiaofei/p/7634295.html