无法正确读取 id3tag

cant read id3tag correctly

我想从 mp3 文件中读取 id3tag。我知道这个在mp3文件最后128字节的位置。

所以我做了这个代码:

#include <stdio.h>
#include <iostream>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    FILE *pFile = fopen("1.mp3", "r");
    fseek(pFile, -128, SEEK_END);
    char artist;
    for (int i = 0; i < 128; i++)
    {
        fread(&artist, sizeof(char), 1, pFile);
        cout << "A: " << artist << endl;
    }
    getchar();
    return 0;
}

不要担心输出,它只是一个示例。

谷歌搜索后,我找到了这个信息:

我的问题,我不明白为什么:

我正在研究 Windows,例如,我打开 mp3 文件属性(我想阅读)并将标题设置为超过 30 个符号。使用我的程序后,在输出中我的标题中只有 30 个符号,但在文件中它又多了。 请帮帮我,我只想知道为什么?

对不起,我发现了一个问题。 mp3 文件在最后 128 个字节的文件末尾有 id3v1 标签,在文件开头有一个 id3v2.x 标签。