SP.NET 进阶】获取MP3文件信息并显示专辑图片

简介:

突发奇想,想弄个显示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, 0)+"<br>";
                mp3InfoInterHtml += "文件大小:" + dir.GetDetailsOf(item, 1) + "<br>";
                mp3InfoInterHtml += "歌曲名:" + dir.GetDetailsOf(item, 21) + "<br>";
                mp3InfoInterHtml += "歌手:" + dir.GetDetailsOf(item, 13) + "<br>";
                mp3InfoInterHtml += "专辑:" + dir.GetDetailsOf(item, 14) + "<br>";
                mp3InfoInterHtml += "时长:" + dir.GetDetailsOf(item, 27) + "<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 > 0)
                {
                    image = System.Drawing.Image.FromStream(info.ID3v2Info.AttachedPictureFrames.Items[0].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" />

 






本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/4964571.html,如需转载请自行联系原作者
目录
相关文章
|
16天前
Visual Studio 快速分析 .NET Dump 文件
【11月更文挑战第10天】.NET Dump 文件是在 .NET 应用程序崩溃或出现问题时生成的,记录了应用程序的状态,包括内存对象、线程栈和模块信息。通过分析这些文件,开发人员可以定位和解决内存泄漏、死锁等问题。在 Visual Studio 中,可以通过调试工具、内存分析工具和符号加载等功能来详细分析 Dump 文件。此外,还可以使用第三方工具如 WinDbg 进行更深入的分析。
|
2月前
|
C# Windows
一款基于.NET开发的简易高效的文件转换器
一款基于.NET开发的简易高效的文件转换器
|
3月前
.NET 压缩/解压文件
【9月更文挑战第5天】在 .NET 中,可利用 `System.IO.Compression` 命名空间进行文件的压缩与解压。首先引入相关命名空间,然后通过 GZipStream 类实现具体的压缩或解压功能。下面提供了压缩与解压文件的方法示例及调用方式,便于用户快速上手操作。
|
4月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
4月前
|
Java Windows 容器
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
|
4月前
|
开发框架 .NET Linux
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
|
4月前
|
人工智能 文字识别
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
23 0
|
5月前
|
存储 对象存储 Python
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
44 7
|
3月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
65 0