private bool ReadFromFile(FileStream stream)
{
if(!stream.CanSeek || !stream.CanRead)
throw (new ArgumentException("The passed Stream object must support seeking and reading.","stream"));
if(stream.Length<128)
return false;
stream.Seek(stream.Length-128, SeekOrigin.Begin);
byte[] data=new byte[128];
if(stream.Read(data, 0, 128)<128)
return false;
if(Encoding.GetEncoding("ISO-8859-1").GetString(data, 0, 3).ToLower()!="tag")
return false;
Title=Encoding.UTF8.GetString(data, 3, 30).Trim();
Artist=Encoding.UTF8.GetString(data, 33, 30).Trim();
Album=Encoding.UTF8.GetString(data, 63, 30).Trim();
Year=Encoding.UTF8.GetString(data, 93, 4);
Comment=Encoding.UTF8.GetString(data, 97, 30).Trim();
GenreCode=data[127];
if(data[125]==0)
{
TrackNumber=data[126];
}
return true;
}