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("参数不正确,只能跟一个参数");
}
}
}
}
分享到:
相关推荐
在C#编程环境中,开发一个WinForm应用来读取MP3文件的详细信息是一项常见的任务。这涉及到多媒体处理,特别是音频文件的元数据提取。在这个项目中,我们使用C#语言,结合WinForm控件来实现这个功能。下面将详细阐述...
- ID3标签:MP3文件通常包含ID3标签,存储歌曲信息。C#代码可能使用特定库解析这些信息以显示在播放器界面上。 7. **异常处理** - 错误处理:良好的错误处理机制确保程序在遇到问题时能够优雅地失败,而不是崩溃...
1. **读取ID3信息**:`Mp3Tag`类库可以通过文件路径打开MP3文件,然后使用方法如`GetTitle()`、`GetArtist()`等来获取相应的ID3标签信息。 2. **写入ID3信息**:如果需要修改MP3文件的元数据,可以使用`SetTitle()`...
在编程领域,C#是一种广泛使用的...通过以上知识点的学习和实践,你将能够编写出一个能够读取并显示MP3歌曲文件标准信息的C#程序。这个过程中,不仅可以提升C#编程技能,还能对音频文件处理和元数据有更深入的理解。
【标签】:“C# mp3 播放 简单” 这些标签揭示了项目的重点。"C#"表明使用的是微软的.NET Framework和C#语言;"mp3"表示播放器专注于处理MP3格式的音频文件,这是一种广泛接受的数字音频格式;"播放"意味着该程序...
总之,通过C#解析MP3文件中的图片涉及到理解ID3v2标签规范,读取和解析文件内容,以及处理二进制数据以提取和保存图片。这个过程需要对文件流、二进制数据处理和图像编码有一定的了解。如果你在开发音乐播放器或类似...
在MP3播放器中,我们可以使用诸如Button(按钮)控件来实现播放、暂停等操作,TrackBar(滑块)控件来控制音量,以及Label(标签)控件显示当前播放时间和总时间。 2. **媒体播放组件**: .NET Framework自带的`...
总结来说,这个项目是关于使用C#和Tags.dll库来读取和显示MP3文件中的专辑图片,适用于WPF和Winform环境。开发人员可以从这个示例中学到如何处理MP3元数据,以及如何在图形用户界面中动态加载和显示图片。
6. **元数据解析**:获取并显示MP3文件的元信息,如艺术家、专辑、曲目标题等,这通常需要解析ID3标签,NAudio库也提供了相应支持。 7. **错误处理和异常安全**:在处理文件和播放过程中,可能出现各种错误,如文件...
MP3播放器可以读取这些信息,显示在播放器界面上,方便用户识别正在播放的歌曲。 6. **播放控制**: 播放、暂停、停止、上下首切换是MP3播放器的基本操作。播放和暂停功能通过控制音频流的播放和暂停实现;停止则...
在"MP3Flow"这个项目中,我们可以假设它包含了一个主窗体,该窗体上可能有播放、暂停、停止、音量控制等按钮,以及一个显示歌曲信息的标签。 在C#中,我们可以通过Visual Studio IDE创建WinForm项目,并利用设计...
例如,Button控件可以用于播放、暂停、停止等功能,Label用于显示歌曲信息,PictureBox可能用于显示专辑封面,而TrackBar则可用来控制音量或歌曲进度。 在实现MP3播放功能时,C#的System.Media命名空间下的...
【C#自制MP3播放器】项目是一个基于C#编程语言开发的简易音频播放软件,主要功能是播放MP3格式的音频文件。这个项目对于初学者或者想要了解多媒体编程的开发者来说,是一个很好的学习和参考资源。下面我们将深入探讨...
这包括添加控件,如按钮、滑块(用于音量控制)、进度条(显示播放进度)和标签(显示歌曲信息)。使用Visual Studio的设计器,可以直观地拖放这些控件到表单上,并设置它们的属性。 2. 播放MP3文件:C#的System....
通过以上步骤,你就可以在C#程序中读取并显示MP3文件的元数据了。在实际应用中,你可能还需要处理更多细节,如自定义输出格式、处理多语言文本、处理图片标签等。`TagLib#`库提供了丰富的功能,可以帮助你完成这些...
在C程序"获取MP3中的ID3V1、ID3V2信息.c"中,可能包含了这样的实现,包括打开MP3文件、解析ID3标签、提取元数据信息并显示给用户的过程。 在处理ID3标签时,需要注意以下几点: 1. 文件指针定位:由于ID3标签通常...
这个库可以读取和编辑多种音频格式的标签信息。 6. **播放列表管理**:播放器通常包含播放列表功能,用户可以添加、删除和排序歌曲。这需要实现一个列表数据结构,并与用户界面交互,更新显示。 7. **线程与异步...
标签“波形显示控件”暗示了这个源码可能包含了特定的处理音频波形的方法。例如,它可能有解析WAV、MP3等常见音频格式的函数,将音频数据转换为可绘制的点数组。此外,控件可能还支持实时波形更新,这对于音频处理...
例如,我们可以添加一个“播放”按钮、一个“暂停”按钮、一个“停止”按钮,以及用于显示歌曲信息的标签控件。 2. **媒体处理**: - 使用NAudio库:NAudio是C#中的一个开源音频处理库,它提供了读取、写入和播放...
Console.WriteLine("文件没有有效的ID3标签信息。"); } file.Dispose(); Console.ReadLine(); } } } ``` 在这个例子中,我们首先创建一个`TagLib.File`对象,传入MP3文件的路径。然后,检查`Tag`属性是否为空...