zoukankan      html  css  js  c++  java
  • [开发笔记]-获取歌曲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();
    
            }
        }
    }

    结果:

    转载请注明出处。

  • 相关阅读:
    linux基础命令篇四
    linux基础命令篇三
    linux基础命令篇二
    msf测试
    msf
    [精品转载] [NoSaFe]KALI下免杀神器TheFatRat使用秘籍
    kali&BT安装好之后无法上网或者无法获得内网IP
    Kali Linux安装之后需要做的一些事
    在Ubuntu下解决E: 无法对目录 /var/lib/apt/lists/ 加锁的问题(转)
    xshell之类的软件第一次连接不上初次安装kali问题(转)
  • 原文地址:https://www.cnblogs.com/babycool/p/3676132.html
Copyright © 2011-2022 走看看