在这里,我把音频文件的tag信息划为5部分,分别是:tag标志(3byte),title(30byte),singer(30byte),album(30byte),year(4byte),comment(30byte),各自是按线性排布下来,那么接下来就是获取的关键了:
static void Main(string[] args)
{
byte[] b = new byte[128];
string title;
string singer;
string album;
string year;
string comm;
FileStream fs = new FileStream(@"H:\Music\头文字D音乐全集\Battle Stage\18 - Generation.mp3", FileMode.Open);
fs.Seek(-128,SeekOrigin.End); //查找
fs.Read(b,0,128); //读取
string sFlag = Encoding.Default.GetString(b,0,3);
if (sFlag.Equals("TAG"))
{
Console.WriteLine("TAG is settled!");
title = Encoding.Default.GetString(b,3,30);
singer = Encoding.Default.GetString(b,33,30);
album = Encoding.Default.GetString(b,63,30);
year = Encoding.Default.GetString(b,93,4);
comm = Encoding.Default.GetString(b,97,30);
Console.WriteLine("Title:"+title);
Console.WriteLine("Singer:"+singer);
Console.WriteLine("Album:"+album);
Console.WriteLine("Year:"+year);
Console.WriteLine("Comm:"+comm);
Console.WriteLine(fs.Length+"字节");
Console.WriteLine(fs.Length*1.0/(1024*1024)+"MB");
}
Console.WriteLine("The end!");
Console.Read();
}
//输出
以上测试均在VS2010下进行的