我想讀取id3幀,我的問題是我無法獲得完整的標題。當mp3的標題很長時,我的結果是沒有結束的字符串,並且沒有前9個字符。如果歌曲的標題很短,我的結果是沒有前9個字符的標題。如何讀取id3v2的幀?
struct ID3V2frame
{
char header[4];
char *id3frame[readBytes];
int sizze[4];
}frame;
fseek(file,10,SEEK_SET); // skip id3 header
fread(&frame.header,sizeof(frame),1,file);
readBytes = ((frame.sizze[0] & 127) << 21) |
((frame.sizze[1] & 127) << 14) |
((frame.sizze[2] & 127) << 7) |
(frame.sizze[3] & 127);
fread(&frame.id3frame,sizeof(frame),1,file);
if(strncmp(frame.header,"TIT2", 4) == 0)
printf("%s",frame.id3frame);
是的!你對! – andrey
很高興它幫助你:)無論如何,你有沒有試過id3lib? http://id3lib.sourceforge.net/似乎是成熟和廣泛使用的代碼。 –