Запись данных из буфера в волновой файл на диске

Я пишу программу, которая воспроизводит волновой файл, используя waveOutOpen и PlaySound. Теперь я должен написать функцию для записи голоса с микрофона в файл Wave на диске. Я использую writeInOpen и waveInAddBuffer для записи звука в буфер, но я не могу найти простой класс для манипулирования файлом wave и копирования содержимого буфера в файл .wav. Спасибо за предложения!

1

Решение

Вы должны создать файл самостоятельно.

Вы можете использовать API мультимедийного файлового ввода / вывода, конкретно в mmioOpen(), mmioCreateChunk(), mmioAscend(), а также mmioWrite() функции. Вам нужно хорошее понимание того, как работает формат файла WAVE, как WAVEFORMAT/EX структуры работают и т. д., чтобы вы знали, какие части писать и как правильно их писать.

Или используйте DirectX DirectSound API, конкретно IDirectSoundCaptureBuffer8 интерфейс и CWaveFile вспомогательный класс:

Запись в файл WAV

Пока у вас нет понимания того или иного подхода, вам следует подумать об использовании существующей библиотеки, чтобы выполнить тяжелую работу за вас, например:

Класс Wave для воспроизведения и записи файлов Wave

0

Другие решения


По вопросам рекламы [email protected]