Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Мультимедиа , Запись звука

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses mmSystem;

 {....}

 procedure TForm1.Button1Click(Sender: TObject);     // Record 
begin
   mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mysound', nil, 0, Handle);
   mciSendString('SET mysound TIME FORMAT MS ' +     // set time 
    'BITSPERSAMPLE 8 ' +                // 8 Bit 
    'CHANNELS 1 ' +                     // MONO 
    'SAMPLESPERSEC 8000 ' +             // 8 KHz 
    'BYTESPERSEC 8000',                // 8000 Bytes/s 
    nil, 0, Handle);
   mciSendString('RECORD mysound', nil, 0, Handle)
 end;


 procedure TForm1.Button2Click(Sender: TObject);     // Stop 
begin
   mciSendString('STOP mysound', nil, 0, Handle)
 end;


 procedure TForm1.Button3Click(Sender: TObject);      // Save 
var
    verz: String;
 begin
   GetDir(0, verz);
   mciSendString(PChar('SAVE mysound ' + verz + '/test.wav'), nil, 0, Handle);
   mciSendString('CLOSE mysound', nil, 0, Handle)
 end;

Here's the translation of the content into Russian:

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

  1. Button1Click: Записывает аудио.
  2. Button2Click: Останавливает запись.
  3. Button3Click: Сохраняет записанное аудио в файл WAV.

Расшифровка кода:

Запись

Процедура Button1Click использует библиотеку MMSystem для открытия нового устройств для записи аудио и настройки его свойств:

procedure TForm1.Button1Click(Sender: TObject);
begin
  mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mysound', nil, 0, Handle);
   // Установка формата времени в миллисекундах, бит на выборку в 8, каналов в моно, частоту дискретизации в 8000 Гц и байты в секунду в 8000.
  mciSendString('SET mysound TIME FORMAT MS ' +
     'BITSPERSAMPLE 8 ' +
     'CHANNELS 1 ' +
     'SAMPLESPERSEC 8000 ' +
     'BYTESPERSEC 8000', nil, 0, Handle);
   // Начало записи
  mciSendString('RECORD mysound', nil, 0, Handle);
end;

Остановка

Процедура Button2Click останавливает запись:

procedure TForm1.Button2Click(Sender: TObject);
begin
  mciSendString('STOP mysound', nil, 0, Handle);
end;

Сохранение

Процедура Button3Click сохраняет записанное аудио в файл WAV. Она получает текущий каталог с помощью GetDir, строит имя файла и пути, и затем использует MMSystem для сохранения аудио:

procedure TForm1.Button3Click(Sender: TObject);
var
  verz: String;
begin
  GetDir(0, verz); // Получение текущего каталога
  mciSendString(PChar('SAVE mysound ' + verz + '/test.wav'), nil, 0, Handle);
   // Закрытие устройства для аудио
  mciSendString('CLOSE mysound', nil, 0, Handle);
end;

Некоторые предложения по улучшению:

  1. Используйте более значимое имя переменной вместо verz.
  2. Рассмотрите добавление обработки ошибок для случаев, когда процесс записи или сохранения аудио fails.
  3. Вам может понравиться добавить обратную связь пользователю, например, отображение сообщения при остановке или сохранении записи.

В целом, этот код выглядит как он должен работать корректно для записи и сохранения аудио в файл WAV с помощью MMSystem в Delphi.

В статье описывается запись WAV-файлов с помощью библиотеки mmSystem в языке программирования Pascal.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Запись звука ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-07 00:06:11/0.0032670497894287/0