无法正确读取 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 标签。
我想从 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 标签。