突发奇想,想弄个显示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. 遇上了artTemplate做的东西

    js现在最牛的地方是 有了Node.js后,前后端的界限几乎都消失了,围绕着它,出现了一整套生态体系. 在生态方面,比php好太多了.

  2. 那些教程没有的php1-基础知识补漏

    php.net 字符串 heredoc结构 类似双引号,其中的变量会被解析.严格遵循下边的格式,结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符. <?php $str = < ...

  3. 【poj 3461】Oulipo(字符串--KMP)

    题意:求子串在文本串中出现了多少次. 解法:使用KMP的next[ ]和tend[ ]数组计数. #include<cstdio> #include<cstdlib> #inc ...

  4. FlexPaper 2.2.1介绍与提取嵌入的文档

            源起看到某个公司内网的公文使用FlexPaper组件来显示文档,在这儿是GoogleCode Project的主页, 还有现在的官方主页.目前FlexPaper是个开源项目,GPLv3 ...

  5. swift学习笔记之-函数

    //函数 import UIKit /*获得系统时间 var date = NSDate() var timeFormatter = NSDateFormatter() timeFormatter.d ...

  6. React 初学整理

    1,通过createElement创建元素 HELLO Word ps:切记组建名称首字母大写 2,虚拟DOM 在虚拟DOM上操作 通过render来渲染真是DOM 3,JSX JSX 是对JS的语法 ...

  7. CSS3中的calc()

    什么是calc()? calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能; MDN的解释为可以用在任何长度,数值,时间,角度,频率等处; /* property: calc ...

  8. Android APK 文件自动安装

    1.权限 <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 2.方法 Uri ...

  9. Swing(一):JFrame框架窗体

    Swing窗体是一个组件,也是可视化的窗体,可以将其他组件放在这里.Jfream框架是一个容器,是Swing程序中各个组件的载体,可以将它看做为 一个容器,在开发中可以通过java.swing.jfr ...

  10. 关于android4.3 Intel X86 Atom System Image的下载

    今天建立android4.3模拟器的时候发现没有android4.3 Intel X86 Atom System Image可选,打开android SDK Manager 于是希望重现选择下载安装, ...