无法正确读取id3tag

时间:2015-07-28 19:25:58

标签: c++ binary mp3 binaryfiles id3

我想从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;
}

不要担心输出,它只是一个样本。

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

enter image description here

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

我在Windows上工作,例如我打开mp3文件属性(我想阅读)并设置标题超过30个符号。在使用我的程序之后,在输出中我在标题中只有30个符号,但在文件的支柱中它再次更多。 请帮帮我,我想知道为什么?

1 个答案:

答案 0 :(得分:0)

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