Tervehdys kaikille,
Elikkäs olen tekemässä musiikki soittimeeni mp3 tiedoston ID3 otsikon tulostusta mutta törmäsin ongelmaan. Hakiessani mp3 tiedostosta asetettua otsikkoa FMODIN FSOUND_Stream_GetTagField palauttaakin vain osan otsikosta.
Eli jos kappaleen titleksi olisi asennettu "Musiikki kipale" niin funktio palauttaa pelkästään "Musiikki kip". Eli osa tekstistä katoaa jonnekkin.
FMOD API:ta haettu funktion rakenne.
signed char F_API FSOUND_Stream_GetTagField( FSOUND_STREAM *stream, int num, int *type, char **name, void **value, int *length );
if( (handle = FSOUND_Stream_Open( filename, 0, 0, 0 )) ){ void *value; if( FSOUND_Stream_GetTagField( handle, 0, NULL, NULL, &value, NULL ) ){ st.titleStr = wxString::Format(wxT("%s"), value); wxMessageBox( st.titleStr ); } }
Voisikohan syy olla fmod:in kirjastossa oleva bugi vai minkä takia saan vain tuon osan titlestä. Yleensä palauttaa vain ensimmäiset 30 merkkiä ja loput jää saamatta.
ID3v1 tagit rajoittavat kenttien pituudet 30 merkkiin http://en.wikipedia.org/wiki/ID3#ID3v1 . Joko kirjasto tukee vain ID3v1 tagejä tai sitten tiedostoissa ei muita tagejä ole.
Aihe on jo aika vanha, joten et voi enää vastata siihen.