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,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
6月前
|
SQL 数据库 开发工具
0002net程序设计-net家电维修保养信息系统
0002net程序设计-net家电维修保养信息系统
27 0
|
7月前
|
开发框架 JSON .NET
ASP.NET Core 自定义配置警告信息
自定义配置警告信息需要在 startup 类中的 ConfigureService 方法中进行配置示例: // 注册 控制器服务 services.AddControllers(configure: setup => { setup.ReturnHttpNotAcceptable = true; ...
48 0
|
15天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
21 0
|
5月前
|
开发者
.NET微信网页开发之网页授权获取用户基本信息
.NET微信网页开发之网页授权获取用户基本信息
|
5月前
|
JSON JavaScript 前端开发
全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解
全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解
|
7月前
|
对象存储
.net core 阿里云接口之拷贝文件
紧接上文, 1)[.net core 阿里云接口之获取临时访问凭证](https://developer.aliyun.com/article/1363447?spm=a2c6h.12873639.article-detail.7.2b0e5b1cpeWbZ5 ".net core 阿里云接口之获取临时访问凭证") 2)[.net core 阿里云接口之将指定的OSS文件下载到流](https://developer.aliyun.com/article/1363886 ".net core 阿里云接口之将指定的OSS文件下载到流") 本文继续阿里云接口调用,将指定的OSS文件下载到流。
37 0
|
7月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
56 0
|
7月前
|
C#
.net core 从(本地)服务器获取APK文件并解析APK信息
## 1、apk解析除了使用客户端利用aapt.exe、unzip.exe开发客户端解析外,还可以直接利用服务进行解析 ```csharp /// <summary> /// 从本地服务器获取APK文件并解析APK信息 /// </summary> /// <param name="fileName">APK文件的完整路径</param> /// <returns></returns> [HttpPost, HttpGet, HttpOptions, CorsOptions] public IActionResult DecodeAPK(string fileName) { if(fi
33 0
|
7月前
|
JavaScript 前端开发 关系型数据库
.net core + vue + elementui 删除指定日期段、指定路径下的所有文件
# 1、呈现效果 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/j2ygdazy447va_0782583bbc894c33a079db9e44385acd.png) # 2、后端 ## 1)服务层 ```csharp /// <summary> /// 删除指定修改日期段及指定路径下的所有文件 /// </summary> /// <param name="filepath">指定路径</param> /// <returns>返回删除结果提示</returns> public string DeleteSpecif
45 0