|
#1
|
|||
|
|||
Запись звука
Здравствуйте! Есть проект, он служит для прорисовки звуковой волны при вхождении звука через микрофон. Собственно вопрос: как сделать, что бы при нажатии на кнопку программа сохраняла wav, который услышала.
Код небольшой. Спасибо тем, кто откликнется помочь.. |
#2
|
||||
|
||||
Все просто, в том месте, где снимаешь данные с микрофона - пишешь их в файл, в файле предватительно заполняешь RIFF шапку (частота дискретизации, каналы, кол-во бит, смещение на начало данных и т.д.).
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Dmitry_DM (22.12.2012)
|
#3
|
|||
|
|||
Цитата:
|
#4
|
||||
|
||||
Код:
procedure OnWaveIn(var Msg: TMessage); message MM_WIM_DATA; data16 := PData16(PWaveHdr(Msg.lParam)^.lpData); собс-но этот data16 и записывать. так же всякие там частоты дискретизации устанавливаются здесь: Код:
with header do begin wFormatTag := WAVE_FORMAT_PCM; nChannels := 1; nSamplesPerSec := discret; wBitsPerSample := integer(Bits16) * 8 + 8; // Число байт в выборке для всех каналов nBlockAlign := nChannels * (wBitsPerSample div 8); // Число байт в секундном интервале для стереосигнала nAvgBytesPerSec := nSamplesPerSec * nBlockAlign; // Для формата РСМ строка не нужна cbSize := 0; end; соб-сно их и надо в заголовок вписать. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Dmitry_DM (22.12.2012)
|