突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下。

效果图:

GIF效果图:

主要是依靠2个DLL文件:ID3.dll 和 Interop.Shell32.dll,步骤如下:

1.保存音乐文件到本地

             #region 保存音乐文件到本地

                string strMp3 = @"~/upload/musics/";
if (!Directory.Exists(Server.MapPath(strMp3)))
{
Directory.CreateDirectory(Server.MapPath(strMp3));
}
strMp3+= fileMp3.FileName ;
if (File.Exists(Server.MapPath(strMp3)))
{
File.Delete(Server.MapPath(strMp3));
}
fileMp3.SaveAs(Server.MapPath(strMp3)); #endregion

2.获取音乐文件信息

                #region 获取音乐文件信息
string mp3InfoInterHtml = "";
ShellClass sh = new ShellClass();
Folder dir = sh.NameSpace(Path.GetDirectoryName(Server.MapPath(strMp3)));
FolderItem item = dir.ParseName(Path.GetFileName(Server.MapPath(strMp3)));
mp3InfoInterHtml += "文件名:" + dir.GetDetailsOf(item, )+"<br>";
mp3InfoInterHtml += "文件大小:" + dir.GetDetailsOf(item, ) + "<br>";
mp3InfoInterHtml += "歌曲名:" + dir.GetDetailsOf(item, ) + "<br>";
mp3InfoInterHtml += "歌手:" + dir.GetDetailsOf(item, ) + "<br>";
mp3InfoInterHtml += "专辑:" + dir.GetDetailsOf(item, ) + "<br>";
mp3InfoInterHtml += "时长:" + dir.GetDetailsOf(item, ) + "<br>";
#endregion

3.显示专辑图片

                #region 显示专辑图片

                string picturePath = @"~/image/play_null_img.png";
if (!Directory.Exists(Server.MapPath(@"~/upload/images/")))
{
Directory.CreateDirectory(Server.MapPath(@"~/upload/images/"));
}
// 加载MP3
ID3Info info = new ID3Info(Server.MapPath(strMp3), true);
System.Drawing.Image image = null;
if (info.ID3v2Info.AttachedPictureFrames.Count > )
{
image = System.Drawing.Image.FromStream(info.ID3v2Info.AttachedPictureFrames.Items[].Data);
picturePath = @"~/upload/images/" +DateTime.Now.ToString("yyyyMMddHHmmss")+ ".png";
if (File.Exists(Server.MapPath(picturePath)))
{
File.Delete(Server.MapPath(picturePath));
}
image.Save(Server.MapPath(picturePath));
}
imgMP3.ImageUrl = picturePath;
dMp3.InnerHtml = mp3InfoInterHtml; #endregion

4.修改文件上传限制

 <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

源代码:GetMp3Info.zip

参考文章:

http://www.cnblogs.com/08shiyan/p/3579822.html

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

【ASP.NET 进阶】获取MP3文件信息并显示专辑图片的更多相关文章

  1. C# 获取 mp3文件信息

    C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string fil ...

  2. C# 获取 mp3文件信息【包括:文件大小、歌曲长度、歌手、专辑】

    C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string fil ...

  3. PHP获取Mp3文件信息

    扫描本地MP3文件,获取文件信息

  4. 实现php获取mp3文件元信息如播放时间歌曲作者等

    最近收集到一个php获取mp3文件元信息的类,感觉比较方便.现在分享给大家! 下面是使用方式和测试方式: <?php include_once 'mp3file.class.php'; func ...

  5. asp.net C#获取程序文件相关信息

    代码如下 复制代码 using System.Reflection;using System.Runtime.CompilerServices; //// 有关程序集的常规信息是通过下列// 属性集控 ...

  6. MP3文件信息修改

    MP3文件信息 参考链接:https://www.jianshu.com/p/e368517ec7b9 总结: ID3V1在MP3文件后面;ID3V2在MP3文件前面;现在有些文件是V1的,有些文件是 ...

  7. C#获取MP3,WMA信息

    用于获取MP3内部信息,包括歌曲名,歌手名等…… namespace FileBatchRemaer.domain { /// <summary> /// Mp3信息结构 /// < ...

  8. MP3文件信息批量更改器

    以前(估计是2003年)编写一个MP3文件信息批量更改器MP3TagChanger,现放上来参考.(VB6编码) 使用方法很简单,会Winamp或者千千静听的就懂使用. http://pan.baid ...

  9. android播放器如何获取音乐文件信息

    转http://blog.csdn.net/hellofeiya/article/details/8464356, android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的. ...

随机推荐

  1. python代码风格-PEP8

    转载自http://www.douban.com/note/134971609/ Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下 ...

  2. HttpClient总结一之基本使用

    最近工作中是做了一个handoop的hdfs系统的文件浏览器的功能,是利用webhdfs提供的rest api来访问hdfs来与hdfs进行交互的,其中大量使用HttpClient,之前一直很忙,没什 ...

  3. mysql命令行备份数据库

    MySQL数据库使用命令行备份|MySQL数据库备份命令 例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录 mysq ...

  4. VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug

    SharePoint 2013 已RTM了,对于程序员来说又要了解新功能了,同时 VS 2013 也将要 RTM了,两者同时应用定会有不新功能,我们先从 自定义 列表开始. SharePoint 20 ...

  5. SAP SD 需求类别确定

    分别按如下优先级确定 1.先从物料主数据中取MRP组对应的策略组. 在物料的MRP1视图中可以得到MRP组, 通过OPPR事务,查找策略组 根据策略组找到对应的策略 img-->生产---> ...

  6. android ButterKnife 解决重复findViewById

    简介: 程序员都是懒惰的,不想写一大堆像下面这样的代码 class ExampleActivity extends Activity { TextView title; TextView subtit ...

  7. 换iphone5屏幕你花了多少钱?不防我们看下市场的批发价格

    看来人家批发价也不便宜啊,你修一块花了多少米 免费b2b平台  US $1 - 79.99 / Piece Factory Price for iphone 5" lcd alibaba   ...

  8. 安装和配置tomcat服务器

    本文主要介绍一下tomcat服务器的安装和配置 1.获取tomcat tomcat服务器可以到它的官方网站(http://tomcat.apache.org)上下载 2.安装tomcat 具体步骤: ...

  9. 【读书笔记】iOS-复制的种类

    一,你可以使用不同的方法复制对象.大多数对象都引用(即指向)其它对象. 二,浅层复制,不复制引用对象,新复制的对象只指向现有的引用对象.NSArray类的copy方法是浅层复制.当复制一个NSArra ...

  10. Swift学习--常量.变量.数据类型的使用(一)

    一.Swift中的常量和变量 /* Swift 中定义常量和变量用let/var let 代表定义一个常量 var 代表定义一个变量 Swift 中代表定义常量和变量不需要写数据类型,编译器辉根据我们 ...