0
MP3 ID3標籤我嘗試讀取ID3標籤的標題:讀取C++
int main() {
union MP3Header {
char header[10];
struct HeaderStruct {
char tagIndicator[3];
char version[2];
char flags[1];
char size[4];
} headerStruct;
};
fstream file;
file.open("file.mp3", ios::binary || ios::in);
MP3Header header;
//read header of id3
file.read(header.header, 10);
//tag description
char tag[4] = {0};
strncpy(tag, header.headerStruct.tagIndicator, 3);
cout << tag << endl;
//get size
string sizeTags = "";
for (int i=0; i<4; i++) {
bitset<8> bit_set = header.headerStruct.size[i];
sizeTags += bit_set.to_string();
}
cout << sizeTags << endl;
}
的標籤某些MP3文件大小爲... 1111101110110(8054個字節) 我覺得這個代碼是錯誤的,因爲大小很奇怪。
A [簡單的搜索](http://en.wikipedia.org/wiki/ID3#Layout )或檢查規範將確認您想要128B作爲標準,或227B擴展。你應該使用類似這樣的庫,例如[id3lib](http://id3lib.sourceforge.net/)。 'id3'標籤位於MP3文件的末尾,而不是頭部。 – OJFord
id3v2是頭像。 感謝您的支持。 – user3807389
你的號碼可能沒關係,但只需要轉換,因爲MP3使用同步安全整數。看到這個:[SynceSafe整數轉換](http://stackoverflow.com/questions/5223025/why-are-there-synchsafe-integer) –