Декодировать wav файл в raw на win32 - PullRequest
3 голосов
/ 05 августа 2010

Как я могу декодировать файл wav (RIFF), содержащий данные PCM в Windows, в необработанные образцы (чтобы я мог передать их в ASIO) на win32?

У меня нет времени изобретать велосипед. Если бы там была библиотека, которая одновременно выполняла бы весь процесс воспроизведения wav-файла в ASIO, это было бы неплохо. ASIO достаточно прост и имеет много примеров для Windows онлайн. Если бы только у меня был wav-файл в виде необработанных данных PCM для подачи на него!

Я пытался использовать libsndfile, но нет примеров того, как использовать его в Windows, и он не будет компилироваться в Windows. (Они кросс-компилируют и выпускают двоичный файл в настоящее время.)

Должен быть способ сделать это с помощью MS API ... что это?

Было бы неплохо, если бы он преобразовал его в 16-битное аудио 44,1 кГц, чтобы я мог передать его в ASIO, но я могу справиться с соединением двух битов вместе, если только кто-то может дать мне подсказку о том, как декодировать WAV-файл в сырые образцы на Windows,

Ответы [ 4 ]

3 голосов
/ 05 августа 2010

Файл заголовка .wav имеет значение очень просто (учебное пособие), и данные, закодированные в формате PCM, вероятно, могут быть переданы непосредственно в ASIO после их обнаружения (путем анализа нескольких простых полей заголовка)

2 голосов
/ 06 августа 2010

См. Это .

Это инкапсулировано в структуру WAVEFORMATEX на Win32.

1 голос
/ 29 октября 2010

Если вы возьмете tar-архив с исходным кодом для libsndfile, вы обнаружите, что он содержит несколько примеров программ в каталогах examples / и Programs /.

0 голосов
/ 06 августа 2010

Они не являются частью Windows API, но поскольку у меня нет большого опыта работы с ним напрямую, я просто расскажу вам о паре инструментов, которые я знаю / использовал, которые будут делать то, что вы хотите.

Python имеет модуль aifc. FFmpeg - это еще один вариант, если вы не хотите использовать Python и можете вызывать внешние программы из своего кода.

РЕДАКТИРОВАТЬ: поскольку вы, кажется, делаете это для работы, вы 'Возможно, вам захочется взглянуть на http://ffmpeg.org/legal.html, если вы думаете об использовании FFmpeg (что, вероятно, не будет, поскольку другие люди предоставляют информацию, связанную с WinAPI), поскольку FFmpeg использует либо версию LGPL, либоGPL в зависимости от того, какие опции вы используете / как вы его настраиваете.

...