`
zu14
  • 浏览: 458983 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

读取MP3 ID3 v1 的 TAG 信息(C# / .Net)

阅读更多

MPEG音频文件使用TAG区来描述该音频文件的一些相关信息,例如:演唱者、专辑、发行年份、音乐名字、流派、所处的音轨以及一些附加的信息

这里讲的TAG,是针对 ID3 v1的版本,包括 v1.0 和 v1.1,在 ID3 v1 的版本定义中,TAG信息是如下定义的:

  存放在MP3文件的尾部,占用128个byte,内容不足时,使用 null (ascii = 0) 或者 空格(ascii=32)补齐

这128个byte的分配情况如下:

  1. 前3个bytes (0—2): 存放 TAG 这三个字符,如果不是TAG,则认为该MPEG文件,没有包含正确的TAG信息,不予处理
  2. (3—32) 的 30个bytes,存放 音乐的标题 (title)
  3. (33—62) 的 30个bytes,存放 演唱/奏者,艺术家 
  4. (63—92) 的 30个bytes, 存放 专辑名
  5. (93—96) 的 4个bytes,存放 发行年份
  6. (97—126) 的 30个bytes, 要分情况了: v1.0的情况: 存放 注释/附加/备注信息;v1.1的情况:前29个bytes存放 注释/附加/备注信息,最后一个byte,存放 音轨信息
  7. 最后一个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信息.rar_MP3 ID3_id3_id3v2_mp3 tag_mp3 信息

    在编程中,获取MP3中的ID3V1和ID3V2信息通常需要使用特定的库或API,例如在C语言中可以使用libid3tag库。这个库提供了读取和写入ID3标签的功能。通过解析MP3文件的头部,可以定位到ID3V1或ID3V2标签的位置,然后读取...

    c#版读取MP3详细信息

    // 读取MP3信息 string artist = file.Tag Artists[0]; string album = file.Tag.Album; TimeSpan length = TimeSpan.FromSeconds(file.Properties.Duration.TotalSeconds); // 显示在WinForm控件中 ...

    获取mp3标签信息C#(.net)类及实例

    在.NET环境中,获取MP3文件的元数据,如标题、艺术家、专辑等信息,通常涉及到对音频文件的ID3标签的解析。ID3是用于存储元数据的标签格式,广泛应用于MP3文件中。本篇将详细介绍如何使用C#语言来实现这个功能,并...

    Mp3文件Tag信息C#类

    首先,MP3 Tag通常指的是ID3标签(ID3v1和ID3v2)。ID3v1是早期的标准,包含的基本信息有限,如标题、艺术家、专辑和年份。ID3v2则更为复杂,支持更多的元数据字段,如作曲家、歌词、专辑图片等,并且允许用户自定义...

    C#实现读取MP3歌曲文件标准信息

    例如,`TagLib.File`类代表一个文件,你可以创建它的实例,然后调用如`Tag`属性来获取ID3标签,`Title`、`Artist`、`Album`等属性来获取具体信息。 6. **异常处理**:在处理文件时,总是要考虑到可能的错误,如文件...

    C# 如何读取MP3歌曲的文件标志信息(源码)

    if (file.Tag.ID3v1Tag != null) { string title = file.Tag.Title; string artist = file.Tag.FirstAlbumArtist; string date = file.Tag.Year.ToString(); } ``` 5. **访问ID3v2标签**:获取ID3v2标签中的...

    VisualC#读取MP3文件曲目标签信息.pdf

    本文详细介绍了如何使用 Visual C# 读取 MP3 文件的曲目标签信息,重点讨论了 ID3 V1 和 ID3 V2 标准的结构特点及其在实践中的应用。通过上述步骤,读者可以轻松地掌握这一技术,并应用于自己的项目中,提高音乐库...

    批量修改MP3 Tag

    通过以上知识点,我们可以构建一个C#程序,该程序能够读取指定目录下的所有MP3文件,根据用户需求更新其TAG信息,从而实现批量修改MP3的元数据。这样的工具对于音乐爱好者和数字音频管理者来说非常实用。

    C# 读 取 mp3 属性

    在C#编程中,处理音频文件,特别是MP3文件,涉及到读取和修改其元数据,也就是所谓的“标签”信息。这些信息包括歌曲标题、艺术家、专辑、年份、流派等,它们提供了关于音乐文件的基本描述。在给定的上下文中,我们...

    MP3文件ID3v2,ID3v2,APEv2标签读取

    MP3文件ID3v2、ID3v2和APEv2标签是音频文件中用于存储元数据的标准,这些元数据通常包括艺术家姓名、歌曲标题、专辑名称、曲目编号、年份、流派等信息。在C语言和Linux环境下,理解和处理这些标签对于开发音乐播放器...

    mp3(id3)信息获取 c#

    在C#中,我们可以使用第三方库如`TagLib#`来方便地读取和修改这些ID3信息。首先,确保你已经安装了`TagLib#`库,这可以通过NuGet包管理器进行添加,命令如下: ``` Install-Package TagLibSharp ``` 接下来,我们将...

    一种C#读写二进制文件的通用方法-转

    // 存放读取的 mp3 ID3V1 信息 file.seekg((int)(-1*sizeof(id3v1)), ios::end); file.read((char*)(&id3v1), sizeof(id3v1)); } ``` 知识点四:C# 语言定义数据结构 在 C# 语言中,定义数据结构可以使用类...

    C#文件属性详细信息编辑例子(附源码)

    在上述代码中,我们首先通过`TagLib.File.Create()`方法打开一个文件,然后通过`file.Tag`属性访问和修改ID3标签的各种信息。修改完成后,使用`Save()`方法保存更改。 当然,这只是编辑文件详细信息的一个简单示例...

    C#修改多媒体文件的属性

    以上是一个基本的示例,实际上,NAudio库还提供了更高级的功能,比如读取和修改其他类型的元数据(如ID3v1标签)或处理其他音频格式。此外,还可以使用第三方库,如`TagLib#`,它也支持多媒体文件的元数据操作。 ...

    Mp3_ID3.rar_mpeg/mp3_C#_

    本教程将深入讲解如何在C#环境下利用ID3 DLL库来读取和处理MP3文件中的ID3V2信息。 首先,ID3是一种用于存储元数据的标准,主要应用于MP3文件。它分为两个主要版本:ID3v1和ID3v2。ID3v1包含基本信息,如标题、艺术...

    taglib-sharp.dll

    它为.NET开发者提供了一个方便的API,使得在C#、VB.NET等.NET环境中读取、编辑和创建这些元数据变得轻而易举。 1. **库的使用** 要在Visual Studio项目中使用TagLib#,首先需要将taglib-sharp.dll文件添加到项目的...

    用Windows Api为MP3文件添加音乐信息

    在IT领域,对音频文件...总的来说,为MP3文件添加音乐信息是通过读取和修改ID3标签来实现的,这通常需要借助第三方库,并结合Windows API来完成。了解这些原理和方法,将有助于你开发出高效且功能完善的音乐管理软件。

    C#音乐播放器源码

    例如,使用ID3Tag类库可以读取MP3文件的ID3v1和ID3v2标签,获取歌曲的标题、艺术家、专辑等信息。对于不包含元数据的文件,可能需要通过查询在线音乐数据库如Gracenote或FreeDB来获取。 在实际开发中,考虑到跨平台...

    ID3Sharp-开源

    ID3Sharp库支持ID3的多个版本,包括ID3v1、ID3v1.1、ID3v2.2、ID3v2.3以及ID3v2.4,这涵盖了从较旧到最新的ID3标准。 ID3v1是最原始的版本,包含的基本信息有限,如标题、艺术家、专辑和评论。ID3v1.1则在其基础上...

    AXopenID3ToolKit-开源

    1. **读取ID3标签**:库能够读取MP3文件中的ID3v1和v2.x标签,提取出歌曲的各种元数据。 2. **写入ID3标签**:用户可以使用这个库来修改现有的标签信息,或者向不包含ID3标签的文件添加新的标签。 3. **处理歌词**:...

Global site tag (gtag.js) - Google Analytics