【ASP.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, )+"<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文件信息并显示专辑图片的更多相关文章
- C# 获取 mp3文件信息
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612 string fil ...
- C# 获取 mp3文件信息【包括:文件大小、歌曲长度、歌手、专辑】
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612 string fil ...
- PHP获取Mp3文件信息
扫描本地MP3文件,获取文件信息
- 实现php获取mp3文件元信息如播放时间歌曲作者等
最近收集到一个php获取mp3文件元信息的类,感觉比较方便.现在分享给大家! 下面是使用方式和测试方式: <?php include_once 'mp3file.class.php'; func ...
- asp.net C#获取程序文件相关信息
代码如下 复制代码 using System.Reflection;using System.Runtime.CompilerServices; //// 有关程序集的常规信息是通过下列// 属性集控 ...
- MP3文件信息修改
MP3文件信息 参考链接:https://www.jianshu.com/p/e368517ec7b9 总结: ID3V1在MP3文件后面;ID3V2在MP3文件前面;现在有些文件是V1的,有些文件是 ...
- C#获取MP3,WMA信息
用于获取MP3内部信息,包括歌曲名,歌手名等…… namespace FileBatchRemaer.domain { /// <summary> /// Mp3信息结构 /// < ...
- MP3文件信息批量更改器
以前(估计是2003年)编写一个MP3文件信息批量更改器MP3TagChanger,现放上来参考.(VB6编码) 使用方法很简单,会Winamp或者千千静听的就懂使用. http://pan.baid ...
- android播放器如何获取音乐文件信息
转http://blog.csdn.net/hellofeiya/article/details/8464356, android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的. ...
随机推荐
- 泛函编程(23)-泛函数据类型-Monad
简单来说:Monad就是泛函编程中最概括通用的数据模型(高阶数据类型).它不但涵盖了所有基础类型(primitive types)的泛函行为及操作,而且任何高阶类或者自定义类一旦具备Monad特性就可 ...
- PHP 操作socket 实现简易聊天室
<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP ); socket_bind($socket ,'127.0.0.1', ...
- java系统库性能优化注意点
对于大部分的应用系统开发来说,微秒级别的优化通常是被忽略不计或者不关心的,因为有着更多优化点,但是对于开发供应用系统使用的公用库来说,大部分的操作通常都是对字符.数字.字符串.字节的操作,且这些系统库 ...
- Runtime -----那些被忽略的技能
有人说现在的程序员都被惯坏了,尤其使用一些面向对象的语言开发的时候,只是简单的调用一些系统封装好的接口或者是调用一些“便利的”第三方,对于一个程序的真正实现有了解吗???又有多少了解呢 ...
- docker入门指南(转载)
原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...
- Mysql之执行计划
1.explain分析sql语句 例如: EXPLAIN ) ORDER BY bi.`publish_time` 返回结果: 而今天检查的不是这条sql,远比这条复杂,不过也能反映情况了. (1 ...
- C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
C#中要如何才能删除一个字符串数组中的空字符串呢?随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化.以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤.C#3. ...
- Oracle EBS在编码方式为AL32UTF8时的注意事项
现如今的EBS系统中,为了推进国际化的进程,以及系统向全球化的扩展,在Oracle数据库的编码方式上渐渐从支持中国本土简体中文的ZHS16GBK转向了更趋于国际化的AL32UTF8编码方式.但随之而来 ...
- Sharepoint学习笔记—习题系列--70-573习题解析 -(Q66-Q69)
Question 66You have a custom theme named MyTheme. The theme is defined in a file named MyTheme.thmx. ...
- 自定义带进度条的WebView , 增加获取web标题和url 回掉
1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graph ...