[開發筆記]-獲取歌曲ID3信息


  ID3介紹:

ID3,一般是位於一個mp3文件的開頭或末尾的若干字節內,附加了關於該mp3的歌手,標題,專輯名稱,年代,風格等信息,該信息就被稱為ID3信息,ID3信息分為兩個版本,v1和v2版。  

  獲取歌曲的ID3信息,我使用的插件是Do Anything With ID3 。

主要代碼:

using ID3;
using ID3.ID3v2Frames.BinaryFrames;

namespace Testid3
{
    class Program
    {
        //參考:
        //Do Anything With ID3 - 赤色火焰 - 博客園 http://www.cnblogs.com/mgod/archive/2009/01/19/1377995.html 

        //id3v2.3.0 - ID3.org http://id3.org/id3v2.3.0#sec4.1

        //Do Anything With ID3 - CodeProject http://www.codeproject.com/Articles/17890/Do-Anything-With-ID


        static void Main(string[] args)
        {
            string file = @"E:\abcdef/123.mp3";
            //http://www.cnblogs.com/babycool
            ID3Info Data = new ID3Info(file, true);
            var id31 = Data.ID3v1Info;
            var id32 = Data.ID3v2Info;
            //判斷是否有id3v1
            bool isid31 = id31.HaveTag;
            //判斷是否有id3v2
            bool isid32 = id32.HaveTag;

            StringBuilder sbuilder = new StringBuilder();

            if (isid31)
            {
                sbuilder.AppendLine("--------------id31---------");
                sbuilder.AppendLine(string.Format("Title : {0}", id31.Title));

                sbuilder.AppendLine(string.Format("artist : {0}", id31.Artist));

                sbuilder.AppendLine(string.Format("album : {0}", id31.Album));
                sbuilder.AppendLine(string.Format("genre : {0}", id31.Genre));

            }

            if (isid32)
            {
                sbuilder.AppendLine("--------------id32---------");
                //if (id32.VersionInfo.Minor != 3 && id32.VersionInfo.Minor != 4)
                //{

                //}

                //id3v2 版本
                sbuilder.AppendLine(string.Format("version: {0}",id32.VersionInfo.ToString()));
                //TIT2  標題/ Songname /內容描述
                sbuilder.AppendLine(string.Format("Title:{0}", id32.GetTextFrame("TIT2")));
                //TPE1  主藝術家
                sbuilder.AppendLine(string.Format("Artist:{0}", id32.GetTextFrame("TPE1")));
                //TALB   'Album/Movie/Show title 專輯
                sbuilder.AppendLine(string.Format("Album:{0}", id32.GetTextFrame("TALB")));
                //類型
                sbuilder.AppendLine(string.Format("Genre:{0}", id32.GetTextFrame("TCON")));
                //音軌
                sbuilder.AppendLine(string.Format("Tracl:{0}", id32.GetTextFrame("TRCK")));
                //時長 
                sbuilder.AppendLine(string.Format("時長:{0}", id32.GetTextFrame("TIME")));
                sbuilder.AppendLine(string.Format("大小:{0}", id32.GetTextFrame("TLEN")));

            }

            Console.WriteLine(sbuilder.ToString());

            Console.ReadKey();

        }
    }
}

結果:

 

轉載請注明出處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM