[开发笔记]-获取歌曲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();

        }
    }
}
复制代码

结果:

 

本文转自 酷小孩 博客园博客,原文链接:http://www.cnblogs.com/babycool/p/3676132.html  ,如需转载请自行联系原作者

相关文章
软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章(二)
软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章
69 0
|
算法 程序员 图形学
软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章(一)
软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章
69 0
|
存储 前端开发 JavaScript
软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章(三)
软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章
128 0
|
存储 Python
如何用str.format()批量生成网址【以豆瓣读书为例】
如何用str.format()批量生成网址【以豆瓣读书为例】
94 0
如何用str.format()批量生成网址【以豆瓣读书为例】
|
开发工具
使用wxjava实现发表内容、预览信息以及推送文章
使用wxjava实现发表内容、预览信息以及推送文章
301 0
使用wxjava实现发表内容、预览信息以及推送文章
六行代码下载张杰的最新专辑视频
六行代码下载张杰的最新专辑视频
119 0
六行代码下载张杰的最新专辑视频
|
Android开发 iOS开发 C++
使用Xamarin开发即时通信系统 -- 基础篇(大量图文讲解 step by step,附源码下载)
本系列文章将详细介绍如何使用 Xamarin 开发出一个移动端的即时通信系统(手机版的聊天程序),本文作为基础篇,将着重介绍Xamarin Android和Xamarin iOS环境的搭建,包括安装、设置、模拟器、部署、运行调试等。
4789 0
|
Android开发 iOS开发 C++
使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)
原文:使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)         如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!而且,Xamarin已经被微软收购并被大力推广,.NET开发人员将时间投资在Xamarin上,以应对移动开发的热潮,应该是值得的。
1628 0