Я хочу читать файлы MP3 на С++, и я предпочитаю писать свой собственный код для этого. В основном, чтобы узнать, как работает файл. Я хочу прочитать все бит шестнадцатеричных данных файла MP3 и включить его динамики.:) Я понятия не имею, с чего начать, поскольку я еще не знаю, как данные фактически хранятся в файле MP3.
Спасибо за помощь
Файл MP3 состоит из нескольких фреймов MP3, которые состоят из заголовка и блока данных. Эта последовательность кадров называется элементарным потоком. Фреймы не являются независимыми элементами ( "байтовый резервуар" ) и поэтому не могут быть извлечены на произвольных границах кадров. Блоки данных MP3 содержат (сжатую) аудиоинформацию по частотам и амплитудам. На диаграмме показано, что заголовок MP3 состоит из слова синхронизации, которое используется для идентификации начала действительного кадра. За этим следует бит, указывающий, что это стандарт MPEG и два бита, которые указывают, что используется слой 3; следовательно, MPEG-1 Audio Layer 3 или MP3. После этого значения будут отличаться в зависимости от файла MP3. ISO/IEC 11172-3 определяет диапазон значений для каждого раздела заголовка вместе со спецификацией заголовка. Большинство MP3 файлов сегодня содержат метаданные ID3, которые предшествуют или следуют за MP3-фреймами; как отмечено на диаграмме.