Ik wil van Mp3tjes de ID3 tag kunnen uitlezen. Nu lukt dit me prima voor v1 tags, maar v2 tags zijn om de een of andere reden lastiger.
Uit de documentatie voor ID3 v2 tags:
Dit vertaal ik in (testcode):
Ik zou verwachten dat als mymp3file.mp3 een id3 v2 tag bevatte dat deze procedure mij een messagebox met 'ID3' erin zou laten zien. Dit gebeurd echter niet, en ik kan zo een-twee-drie niet bedenken waarom niet.
Ik weet dat er complete libraries voor te vinden zijn (met een beetje zoekwerk), maar wil perse mijn eigen code gebruiken voor het uitlezen van die tags. Zie het ook een beetje als leercode.
Uit de documentatie voor ID3 v2 tags:
Ik lees hieruit dat de 1e 3 bytes van een MP3 met ID3 v2 tag de waarde 'ID3' zou moeten bevatten.The ID3v2 tag header, which should be the first information in the file, is 10 bytes as follows:
ID3v2/file identifier "ID3"
ID3v2 version $03 00
ID3v2 flags %abc00000
ID3v2 size 4 * %0xxxxxxx
The first three bytes of the tag are always "ID3" to indicate that this is an ID3v2 tag, directly followed by the two version bytes. The first byte of ID3v2 version is it's major version, while the second byte is its revision number. In this case this is ID3v2.3.0. All revisions are backwards compatible while major versions are not. If software with ID3v2.2.0 and below support should encounter version three or higher it should simply ignore the whole tag. Version and revision will never be $FF.
Dit vertaal ik in (testcode):
code:
1
2
3
4
5
6
| AssignFile(f,'mymp3file.mp3'); Reset(f,1); BlockRead(f,buffer,3); CloseFile(F); cTest:=Char(buffer[1])+Char(Buffer[2])+Char(Buffer[3]) ; ShowMessage(cTest); |
Ik zou verwachten dat als mymp3file.mp3 een id3 v2 tag bevatte dat deze procedure mij een messagebox met 'ID3' erin zou laten zien. Dit gebeurd echter niet, en ik kan zo een-twee-drie niet bedenken waarom niet.
Ik weet dat er complete libraries voor te vinden zijn (met een beetje zoekwerk), maar wil perse mijn eigen code gebruiken voor het uitlezen van die tags. Zie het ook een beetje als leercode.