65.9K
CodeProject 正在变化。 阅读更多。
Home

CMp3Tags - id3v1.1 标签读取器/写入器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.30/5 (11投票s)

2005年2月4日

公共领域

2分钟阅读

viewsIcon

76617

downloadIcon

2618

一篇关于读取和写入 MP3 文件标签的文章。

Sample Image

引言

阅读完本文后,您将看到读取和写入 MP3 文件 ID3 标签是多么容易!

我编写了一个小类,允许用户将 MP3 标签集成到他们的软件中,并且它非常易于使用。

背景

我需要一个应用程序来使用 ID3 标签来重命名 MP3 文件和对其进行排序等,所以我编写了自己的类,因为我遇到的其他类都太大,仅适用于我需要的功能。关于 ID3 的基本信息可以在 这里 找到。

使用代码

要使用 CMp3Tags,首先需要将 Mp3Tags.h 包含到您的源文件之一中。 大多数人都会知道如何执行此操作,但对于那些不知道的人,我将带您逐步完成操作!

#include "CMp3Tags.h"

现在我们已经将文件包含到项目中,我们需要找到一个 MP3 文件来使用。为了节省时间,只需找到您想要使用的特定 MP3 文件,复制一份,并将其放在 C 盘的根目录下,例如 C:\mp3test.mp3

CMp3Tags Tags;
Tags.OpenFile("C:\\mp3test.mp3");

这将创建一个 CMp3Tags 的实例并打开我们刚刚放在 C:\ 中的文件。 当我们使用此类打开文件时,它会自动读取 Id3 标签,从而节省了我们调用各种不同的函数来获取特定数据的步骤。 当它读取数据时,它会将数据存储在类的这些私有成员中

CString m_strSongTitle;
CString m_strArtist;
CString m_strAlbum;
CString m_strYear;
CString m_strComment;

由于这些是私有成员,我们无法从类外部访问它们,因此我们使用函数将这些字符串返回给我们,以便在我们的应用程序中使用。

CMp3Tags Tags;
Tags.OpenFile("C:\\mp3test.mp3");

//New Code
CString strTitle = Tags.GetSongTitle();

我们刚刚添加的新代码行将返回 MP3 的标题。 但是,如果 MP3 文件在标签中不包含标题,它将不返回任何内容。 因此,如果需要,我们可以进行一些检查,看看它是否返回了任何内容,如果没有,我们可以输入我们自己的标题!

就这样

CMp3Tags Tags;
Tags.OpenFile("C:\\mp3test.mp3");

CString strTitle = Tags.GetSongTitle();   

//New Code
if ( strTitle.IsEmpty() )
{
     Tags.SetSongTitle("CMp3Tags - Remix");
}
 
Tags.CloseFile();

完成了,基本上就是这样了!

以下是设置/获取变量的函数列表!

//Set Variables
int SetSongTitle(LPCTSTR lpSongName);
int SetArtist(LPCTSTR lpArtist);
int SetAlbum(LPCTSTR lpAlbum);
int SetYear(LPCTSTR lpYear);
int SetComment(LPCTSTR lpComment);
 
//Get Variables
CString GetSongTitle();
CString GetArtist();
CString GetAlbum();
CString GetYear();
CString GetComment();

所有返回类型为 int 的函数都将在出错时返回 < 0,在成功时返回 0。

好了,差不多就是这样了,各位! 希望您喜欢我在 CodeProject 上的第一篇文章。 希望我能写更多 :)

© . All rights reserved.