Я пишу программу, которая воспроизводит волновой файл, используя waveOutOpen и PlaySound. Теперь я должен написать функцию для записи голоса с микрофона в файл Wave на диске. Я использую writeInOpen и waveInAddBuffer для записи звука в буфер, но я не могу найти простой класс для манипулирования файлом wave и копирования содержимого буфера в файл .wav. Спасибо за предложения!
Вы должны создать файл самостоятельно.
Вы можете использовать API мультимедийного файлового ввода / вывода, конкретно в mmioOpen()
, mmioCreateChunk()
, mmioAscend()
, а также mmioWrite()
функции. Вам нужно хорошее понимание того, как работает формат файла WAVE, как WAVEFORMAT/EX
структуры работают и т. д., чтобы вы знали, какие части писать и как правильно их писать.
Или используйте DirectX DirectSound API, конкретно IDirectSoundCaptureBuffer8
интерфейс и CWaveFile
вспомогательный класс:
Пока у вас нет понимания того или иного подхода, вам следует подумать об использовании существующей библиотеки, чтобы выполнить тяжелую работу за вас, например: