Ho fatto un po 'di ricerche, forse ti aiuterà.
Un file MP3 Struttura del file è composto da più frame MP3, che consistono in un header e un blocco di dati.Questa sequenza di frame è chiamata stream elementare. I frame non sono elementi indipendenti ("byte reservoir") e pertanto non possono essere estratti su limiti di frame arbitrari. I blocchi di dati MP3 contengono le informazioni audio (compresse) in termini di frequenze e ampiezze. Il diagramma mostra che l'intestazione MP3 è costituita da una parola di sincronizzazione, che viene utilizzata per identificare l'inizio di un frame valido. Questo è seguito da un bit che indica che questo è lo standard MPEG e due bit che indicano che viene usato il layer 3; quindi MPEG-1 Audio Layer 3 o MP3. Dopo questo, i valori saranno diversi, a seconda del file MP3. ISO/IEC 11172-3 definisce l'intervallo di valori per ogni sezione dell'intestazione insieme alle specifiche dell'intestazione. La maggior parte dei file MP3 contiene metadati ID3, che precedono o seguono i frame MP3; come indicato nello schema.
Il codice sorgente di LAME
LAME è un libary MP3, ma è anche open-source, wich significa che è possibile scaricare il codice sorgente e esaminare il problema. http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz/download Ho dato un'occhiata a me stesso, e sembra essere scritto in C o C++, quindi sei fortunato. Se esamini il codice sorgente di LAME e capisci come funziona, forse puoi riuscire a creare una tua libreria MP3. Basta notare che LAME non è una libreria per riprodurre file MP3, ma per codificarli. Ma mentre crea gli MP3 invece di leggerli, penso che la struttura dovrebbe essere un po 'più chiara di qualsiasi altra libreria di lettori MP3.
Spiegazione del formato di file MP3
Questo sembra anche di spiegare come MP3 funziona abbastanza bene, ma è pura teoria, quindi avrai bisogno di un sacco di pazienza. http://www.mp3-converter.com/mp3codec/
Se hai bisogno di chiedere in questo modo, ti consiglio di abbandonare l'idea di scriverlo da solo, e piuttosto di usare qualche libreria. – nothrow