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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
210 3
|
4月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
161 0
|
10月前
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
238 12
|
11月前
Visual Studio 快速分析 .NET Dump 文件
【11月更文挑战第10天】.NET Dump 文件是在 .NET 应用程序崩溃或出现问题时生成的,记录了应用程序的状态,包括内存对象、线程栈和模块信息。通过分析这些文件,开发人员可以定位和解决内存泄漏、死锁等问题。在 Visual Studio 中,可以通过调试工具、内存分析工具和符号加载等功能来详细分析 Dump 文件。此外,还可以使用第三方工具如 WinDbg 进行更深入的分析。
548 1
.NET 压缩/解压文件
【9月更文挑战第5天】在 .NET 中,可利用 `System.IO.Compression` 命名空间进行文件的压缩与解压。首先引入相关命名空间,然后通过 GZipStream 类实现具体的压缩或解压功能。下面提供了压缩与解压文件的方法示例及调用方式,便于用户快速上手操作。
152 6
|
12月前
|
C# Windows
一款基于.NET开发的简易高效的文件转换器
一款基于.NET开发的简易高效的文件转换器
104 0
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
102 3
|
开发框架 .NET Linux
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
106 0
|
10月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
237 5

热门文章

最新文章