mp3的tag信息在mp3文件的头部和尾部
你应该去看看具体是怎么定义的
然就不就知道该怎么做了? (-:

解决方案 »

  1.   

    我知道它是在mp3 的最后128字节里定义的,但是我不知道用c#怎么取出来这128个字节的信息从一个mp3 文件里面。呜呜,
      

  2.   

    可以使用editplus或者UltraEdit将mp3文件打开。
    在mp3文件的开头,结尾 会有些文本信息。
    这些就是楼主说的mp3文件的tag信息吧。
    不过到底在什么地方开始,什么地方结束。楼主得查查资料了
      

  3.   

    我有vb的例子,正在翻译到C#里面,楼上的朋友,这里Mp3 tag有2个版本,你们说的是版本1,目前大家都在使用版本2
    用对版本1的处理方式,不能正确的现在版本2的全部信息
      

  4.   

    谢谢大家哦,应该是版本2,就是ID3 的版本2吧,
    过河兵 说到的editplus和ultraedit是文本编辑器吧? 我想知道在c#里面怎么取呢!
    cysoft 能告诉我你如何翻译到c#里面么,用c#怎么读入mp3 文件呢(字符串还是文件流或者文本呢)?希望说详细一点哦!
      

  5.   

    <code author="maddog">
                fs=File.OpenRead("e:\\path\\2.mp3");
                fs.Seek(-128,System.IO.SeekOrigin.End);
                byte[] buf= new Byte[128];
                fs.Read(buf,0,128);
                Console.Write("test");            Console.Write(System.Text.Encoding.Default.GetString(buf));
                <code>
      

  6.   

    static void Main(string[] args)
    {
    byte[] b = new byte[128];
    string sTitle;
    string sSinger;
    string sAlbum;
    string sYear;
    string sComm; FileStream fs = new FileStream(@"d:\mp3.mp3", FileMode.Open);
    fs.Seek(-128, SeekOrigin.End);
    fs.Read(b, 0, 128);
    bool isSet=false;
    String sFlag = System.Text.Encoding.Default.GetString(b, 0, 3);
    if (sFlag.CompareTo("TAG")==0)
    {
    System.Console.WriteLine ("Tag is setted!");
    isSet=true;
    }

    if (isSet)
    {
    //get title of song;
    sTitle = System.Text.Encoding.Default.GetString (b,3,30);
    System.Console.WriteLine ("Title:" + sTitle);
    //get singer;
    sSinger = System.Text.Encoding.Default.GetString (b,33,30);
    System.Console.WriteLine ("Singer:" + sSinger);
    //get album;
    sAlbum = System.Text.Encoding.Default.GetString (b,63,30);
    System.Console.WriteLine ("Album:" + sAlbum);
    //get Year of publish;
    sYear= System.Text.Encoding.Default.GetString (b,93,4);
    System.Console.WriteLine ("Year:" + sYear);
    //get Comment;
    sComm= System.Text.Encoding.Default.GetString (b,97,30);
    System.Console.WriteLine ("Comment:" + sComm);
    }
    System.Console.WriteLine("Any key to exit!");
    System.Console.Read();
    }