using System;
using System.IO;
namespace mp3infons
{
class MP3Info
{
struct MP3InfoStruct
{
public string MP3Flag;
public string Title;
public string Singer;
public string Album;
public string Year;
public string Comment;
}
private string MP3File;
MP3InfoStruct mp3struct;
public MP3Info(string MP3Name)
{
MP3File = MP3Name;
mp3struct = new MP3InfoStruct();
}
public bool readMP3Info()
{
bool isSet=false;
byte[] b = new byte[128];
try
{
FileStream fs = new FileStream(MP3File, FileMode.Open);
fs.Seek(-128, SeekOrigin.End);
fs.Read(b, 0, 128);
mp3struct.MP3Flag = System.Text.Encoding.Default.GetString(b, 0, 3);
if (mp3struct.MP3Flag.CompareTo("TAG")==0)
{
//检查是否设置了标签
isSet=true;
mp3struct.Title = System.Text.Encoding.Default.GetString (b,3,30);
mp3struct.Singer = System.Text.Encoding.Default.GetString (b,33,30);
mp3struct.Album = System.Text.Encoding.Default.GetString (b,63,30);
mp3struct.Year = System.Text.Encoding.Default.GetString (b,93,4);
mp3struct.Comment = System.Text.Encoding.Default.GetString (b,97,30);
}
fs.Close();
}
catch(Exception e)
{
System.Console.WriteLine(e.Message);
}
return isSet;
}
public void printMP3Info()
{
System.Console.WriteLine("MP3附加信息:");
System.Console.WriteLine("-----------------------------");
System.Console.WriteLine("标 题: " + mp3struct.Title);
System.Console.WriteLine("歌 手: " + mp3struct.Singer);
System.Console.WriteLine("唱片集: " + mp3struct.Album);
System.Console.WriteLine("出版期: " + mp3struct.Year);
System.Console.WriteLine("备 注: " + mp3struct.Comment);
}
}
public class MainMP3
{
static void Main(string[] args)
{
if (args.Length == 1)
{
MP3Info mp3 = new MP3Info(args[0]);
bool f = mp3.readMP3Info();
if (f)
{
mp3.printMP3Info();
}
else
{
System.Console.WriteLine("该MP3没有标注");
}
}
else
{
System.Console.WriteLine("参数不正确,只能跟一个参数");
}
}
}
}
分享到:
相关推荐
介绍了Mp3的两个曲目标签标准,ID3 V1和ID3 V2的结构,并且用VC#实现了显示Mp3文件的标题,歌手,专辑等信息,解释了Mp3曲目标签的奥秘。
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 ...
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 C#源代码例子 C#例子 注意:本源代码共有20章节,分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#...
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 注:一共五部分,请全部下载完成后,放同一目录下解决即可。 目录: 第1章 窗体及菜单设计 实例001 自定义最大化、最小化和关闭按钮 2 实例002 磁性窗体的...
实例124 如何显示和修改数据库中的图像信息 实例125 如何使用水晶报表向导创建报表 第7章 网络应用 ---------------------------------- 实例126 如何下载网页 实例127 如何上下载文件 实例128 如何自制浏览器 实例...
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 C#源代码例子 C#例子 注意:本源代码共有20章节,分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#...
│ ├─实例120 如何取得聚合函数返回值 │ │ ├─实例121 如何直接操作主从关系表 │ │ ├─实例122 如何以Web方式查询Access数据库 │ │ ├─实例123 如何使用列表视图显示数据库信息 │ │ ├─...
112 <br>0188 如何在ASP.NET中显示当前IE浏览器头信息 113 <br>5.6 其他应用技巧 114 <br>0189 如何判断年份是否为闰年 114 <br>0190 如何根据年份判断十二生肖 114 <br>0191 如何根据IP...
│ │ ├─实例124 如何显示和修改数据库中的图像信息 │ │ └─实例125 如何使用水晶报表向导创建报表 │ ├─第7章 网络应用 │ │ ├─实例126 如何下载网页 │ │ ├─实例127 如何上下载文件 │ │ ├─实例...
│ ├─实例120 如何取得聚合函数返回值 │ │ ├─实例121 如何直接操作主从关系表 │ │ ├─实例122 如何以Web方式查询Access数据库 │ │ ├─实例123 如何使用列表视图显示数据库信息 │ │ ├─...
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 ...
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 ...
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 注:一共五部分,请全部下载完成后,放同一目录下解决即可。 目录: 第1章 窗体及菜单设计 实例001 自定义最大化、最小化和关闭按钮 2 实例002 磁性窗体的...
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 注:一共五部分,请全部下载完成后,放同一目录下解决即可。 目录: 第1章 窗体及菜单设计 实例001 自定义最大化、最小化和关闭按钮 2 实例002 磁性窗体的...
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 ...
《Visual C# .NET精彩编程实例集锦》配套光盘文件【全】 目录回到顶部↑ 前言 第1章 控件操作 实例1 如何使用错误提醒控件 实例2 如何使用信息提示控件 实例3 如何使用菜单控件 实例4 如何使用工具栏控件 实例...
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 ...
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051...
实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 ...
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 C#源代码例子 C#例子 注意:本源代码共有20章节,分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#...