Конференция "Media" » Запись в wav файл [D7, WinXP]
 
  • oren_yastreb (21.02.11 17:45) [0]
    Добрый день!

    Написал программу для записи с микрофона в wav. Но вот какой вопрос. Файл wav содается после того как я нажимаю кнопку Стоп. А пока идет запись, куда пишеться звук? Во временный файл?
    ниже публикую процедуры Запись и Стоп

    //Кнопка начать запись
    Form1.dlgSave.FileName:=ExtractFilePath(Application.ExeName)+'audio'+IntToStr(co untpart)+'.wav';
    MCICheck(mciSendString(mciOpenWav, nil, 0, 0));
    MCICheck(mciSendString(mciSetWavAttrs, nil, 0, 0));
    MCICheck(mciSendString(mciRecordWav, nil, 0, 0));
    Form1.State := rsRecording;

    //Кнопка отсановить запись
    MCICheck(mciSendString(mciStopWav, nil, 0, 0));
    Form1.State := rsStopped;
    if Pos(#32, Form1.FileName) > 0 then
    begin
    //MCI requires quotes around file name/paths with spaces in
    Form1.FileName := '"' + Form1.Filename + '"';
    //MCI doesn't seem able to overwrite a filename with spaces in
    if FileExists(Form1.FileName) then
    DeleteFile(Form1.FileName)
    end;
    SaveCmd := Format(mciSaveWav, [Form1.FileName]);
    MCICheck(mciSendString(PChar(SaveCmd), nil, 0, 0));
    MCICheck(mciSendString(mciCloseWav, nil, 0, 0));
    Form1.FileName := '';

    //
  • oren_yastreb (21.02.11 17:55) [1]
    Попробовал поставить NewAC Но там почемуто в AudioIn нужно указывать время записи Rectime. А мне это не подходит
  • IPranker © (21.02.11 21:41) [2]
    Почему бы не воспользоваться функциями типа waveInXXX?
  • oren_yastreb (22.02.11 06:26) [3]
    скачивал исходник на основе это функции. Программа тоже сначала пишет непонятно куда а после того как нажмеш стоп, появляется файл
  • hitman (10.11.11 11:33) [4]
    было бы супер, если подсказали, как при помощи этой функции записывать файл прямо на диск. здесь, походу, запись идет в буфер.
  • Pavia © (10.11.11 20:42) [5]
    mp3 файл в отличие предназначен для потокового вещания. Он состоит из небольших кусочков которые можно проигрывать по мере их прихода.
    У wav формат для хранения у него в начале файла указывается длина. Поэтому окончательный файл будет  по нажатию кнопки стоп". Но во время записи можно периодически обновлять длину файла.

    Советую разобраться с waveInXXX. При помощи этой функции можно читать данные порциями сохранять эти порции в wav при помощи до записи в конец файла. И если добавить ещё и обновление размера файла то окончательный результат будет почти сразу.
    А да команда flush(file) - принудительно запишет данные из временного буфера в файл.
  • NoordeN © (04.11.13 13:26) [6]
    Это сразу на диск пишет?

    ______________________
    [URL=http://www.sportarmy.ru/Go/ListProducts?cid=261]www.sportarmy.ru[/URL]
 
Конференция "Media" » Запись в wav файл [D7, WinXP]
Есть новые Нет новых   [134427   +38][b:0][p:0]