MPEG音频文件使用TAG区来描述该音频文件的一些相关信息,例如:演唱者、专辑、发行年份、音乐名字、流派、所处的音轨以及一些附加的信息
这里讲的TAG,是针对 ID3 v1的版本,包括 v1.0 和 v1.1,在 ID3 v1 的版本定义中,TAG信息是如下定义的:
存放在MP3文件的尾部,占用128个byte,内容不足时,使用 null (ascii = 0) 或者 空格(ascii=32)补齐
这128个byte的分配情况如下:
- 前3个bytes (0—2): 存放 TAG 这三个字符,如果不是TAG,则认为该MPEG文件,没有包含正确的TAG信息,不予处理
- (3—32) 的 30个bytes,存放 音乐的标题 (title)
- (33—62) 的 30个bytes,存放 演唱/奏者,艺术家
- (63—92) 的 30个bytes, 存放 专辑名
- (93—96) 的 4个bytes,存放 发行年份
- (97—126) 的 30个bytes, 要分情况了: v1.0的情况: 存放 注释/附加/备注信息;v1.1的情况:前29个bytes存放 注释/附加/备注信息,最后一个byte,存放 音轨信息
- 最后一个byte (127) 存放的是 所属的流派,目前共有基本的流派信息 80 个,扩展的流派信息 68 个
基本的流派序列:
0 |
'Blues' |
20 |
'Alternative' |
40 |
'AlternRock' |
60 |
'Top 40' |
1 |
'Classic Rock' |
21 |
'Ska' |
41 |
'Bass' |
61 |
'Christian Rap' |
2 |
'Country' |
22 |
'Death Metal' |
42 |
'Soul' |
62 |
'Pop/Funk' |
3 |
'Dance' |
23 |
'Pranks' |
43 |
'Punk' |
63 |
'Jungle' |
4 |
'Disco' |
24 |
'Soundtrack' |
44 |
'Space' |
64 |
'Native American' |
5 |
'Funk' |
25 |
'Euro-Techno' |
45 |
'Meditative' |
65 |
'Cabaret' |
6 |
'Grunge' |
26 |
'Ambient' |
46 |
'Instrumental Pop' |
66 |
'New Wave' |
7 |
'Hip-Hop' |
27 |
'Trip-Hop' |
47 |
'Instrumental Rock' |
67 |
'Psychadelic' |
8 |
'Jazz' |
28 |
'Vocal' |
48 |
'Ethnic' |
68 |
'Rave' |
9 |
'Metal' |
29 |
'Jazz+Funk' |
49 |
'Gothic' |
69 |
'Showtunes' |
10 |
'New Age' |
30 |
'Fusion' |
50 |
'Darkwave' |
70 |
'Trailer' |
11 |
'Oldies' |
31 |
'Trance' |
51 |
'Techno-Industrial' |
71 |
'Lo-Fi' |
12 |
'Other' |
32 |
'Classical' |
52 |
'Electronic' |
72 |
'Tribal' |
13 |
'Pop' |
33 |
'Instrumental' |
53 |
'Pop-Folk' |
73 |
'Acid Punk' |
14 |
'R&B' |
34 |
'Acid' |
54 |
'Eurodance' |
74 |
'Acid Jazz' |
15 |
'Rap' |
35 |
'House' |
55 |
'Dream' |
75 |
'Polka' |
16 |
'Reggae' |
36 |
'Game' |
56 |
'Southern Rock' |
76 |
'Retro' |
17 |
'Rock' |
37 |
'Sound Clip' |
57 |
'Comedy' |
77 |
'Musical' |
18 |
'Techno' |
38 |
'Gospel' |
58 |
'Cult' |
78 |
'Rock & Roll' |
19 |
'Industrial' |
39 |
'Noise' |
59 |
'Gangsta' |
79 |
'Hard Rock' |
扩展的,我就省略了…
有了上面的资料准备,我们就开工了:
代码就不贴了,比较简单的,就是一个byte读取而且,有兴趣的朋友,直接下载源码吧
原文:
http://www.zu14.cn/2009/01/11/csharp-mp3-tag-id3v1/
分享到:
相关推荐
在编程中,获取MP3中的ID3V1和ID3V2信息通常需要使用特定的库或API,例如在C语言中可以使用libid3tag库。这个库提供了读取和写入ID3标签的功能。通过解析MP3文件的头部,可以定位到ID3V1或ID3V2标签的位置,然后读取...
// 读取MP3信息 string artist = file.Tag Artists[0]; string album = file.Tag.Album; TimeSpan length = TimeSpan.FromSeconds(file.Properties.Duration.TotalSeconds); // 显示在WinForm控件中 ...
在.NET环境中,获取MP3文件的元数据,如标题、艺术家、专辑等信息,通常涉及到对音频文件的ID3标签的解析。ID3是用于存储元数据的标签格式,广泛应用于MP3文件中。本篇将详细介绍如何使用C#语言来实现这个功能,并...
首先,MP3 Tag通常指的是ID3标签(ID3v1和ID3v2)。ID3v1是早期的标准,包含的基本信息有限,如标题、艺术家、专辑和年份。ID3v2则更为复杂,支持更多的元数据字段,如作曲家、歌词、专辑图片等,并且允许用户自定义...
例如,`TagLib.File`类代表一个文件,你可以创建它的实例,然后调用如`Tag`属性来获取ID3标签,`Title`、`Artist`、`Album`等属性来获取具体信息。 6. **异常处理**:在处理文件时,总是要考虑到可能的错误,如文件...
if (file.Tag.ID3v1Tag != null) { string title = file.Tag.Title; string artist = file.Tag.FirstAlbumArtist; string date = file.Tag.Year.ToString(); } ``` 5. **访问ID3v2标签**:获取ID3v2标签中的...
本文详细介绍了如何使用 Visual C# 读取 MP3 文件的曲目标签信息,重点讨论了 ID3 V1 和 ID3 V2 标准的结构特点及其在实践中的应用。通过上述步骤,读者可以轻松地掌握这一技术,并应用于自己的项目中,提高音乐库...
通过以上知识点,我们可以构建一个C#程序,该程序能够读取指定目录下的所有MP3文件,根据用户需求更新其TAG信息,从而实现批量修改MP3的元数据。这样的工具对于音乐爱好者和数字音频管理者来说非常实用。
在C#编程中,处理音频文件,特别是MP3文件,涉及到读取和修改其元数据,也就是所谓的“标签”信息。这些信息包括歌曲标题、艺术家、专辑、年份、流派等,它们提供了关于音乐文件的基本描述。在给定的上下文中,我们...
MP3文件ID3v2、ID3v2和APEv2标签是音频文件中用于存储元数据的标准,这些元数据通常包括艺术家姓名、歌曲标题、专辑名称、曲目编号、年份、流派等信息。在C语言和Linux环境下,理解和处理这些标签对于开发音乐播放器...
在C#中,我们可以使用第三方库如`TagLib#`来方便地读取和修改这些ID3信息。首先,确保你已经安装了`TagLib#`库,这可以通过NuGet包管理器进行添加,命令如下: ``` Install-Package TagLibSharp ``` 接下来,我们将...
// 存放读取的 mp3 ID3V1 信息 file.seekg((int)(-1*sizeof(id3v1)), ios::end); file.read((char*)(&id3v1), sizeof(id3v1)); } ``` 知识点四:C# 语言定义数据结构 在 C# 语言中,定义数据结构可以使用类...
在上述代码中,我们首先通过`TagLib.File.Create()`方法打开一个文件,然后通过`file.Tag`属性访问和修改ID3标签的各种信息。修改完成后,使用`Save()`方法保存更改。 当然,这只是编辑文件详细信息的一个简单示例...
以上是一个基本的示例,实际上,NAudio库还提供了更高级的功能,比如读取和修改其他类型的元数据(如ID3v1标签)或处理其他音频格式。此外,还可以使用第三方库,如`TagLib#`,它也支持多媒体文件的元数据操作。 ...
本教程将深入讲解如何在C#环境下利用ID3 DLL库来读取和处理MP3文件中的ID3V2信息。 首先,ID3是一种用于存储元数据的标准,主要应用于MP3文件。它分为两个主要版本:ID3v1和ID3v2。ID3v1包含基本信息,如标题、艺术...
它为.NET开发者提供了一个方便的API,使得在C#、VB.NET等.NET环境中读取、编辑和创建这些元数据变得轻而易举。 1. **库的使用** 要在Visual Studio项目中使用TagLib#,首先需要将taglib-sharp.dll文件添加到项目的...
在IT领域,对音频文件...总的来说,为MP3文件添加音乐信息是通过读取和修改ID3标签来实现的,这通常需要借助第三方库,并结合Windows API来完成。了解这些原理和方法,将有助于你开发出高效且功能完善的音乐管理软件。
例如,使用ID3Tag类库可以读取MP3文件的ID3v1和ID3v2标签,获取歌曲的标题、艺术家、专辑等信息。对于不包含元数据的文件,可能需要通过查询在线音乐数据库如Gracenote或FreeDB来获取。 在实际开发中,考虑到跨平台...
ID3Sharp库支持ID3的多个版本,包括ID3v1、ID3v1.1、ID3v2.2、ID3v2.3以及ID3v2.4,这涵盖了从较旧到最新的ID3标准。 ID3v1是最原始的版本,包含的基本信息有限,如标题、艺术家、专辑和评论。ID3v1.1则在其基础上...
1. **读取ID3标签**:库能够读取MP3文件中的ID3v1和v2.x标签,提取出歌曲的各种元数据。 2. **写入ID3标签**:用户可以使用这个库来修改现有的标签信息,或者向不包含ID3标签的文件添加新的标签。 3. **处理歌词**:...