Как воспроизвести звук без проигрывателя в Delphi


Воспроизведение звука без проигрывателя в Delphi

Воспользуемся функцией API PlaySound.

1) Прописываем в Uses модуль MMSystem  и кидаем на форму один Button;

2) Создаем обработчик событий OnClick на кнопке где прописываем следующее:

3) Берем какой нибудь wav файл, переименовываем его в Мелодия.wav, кидаем его на диск C:/ и нажимаем на наш Button. Будет проигрываться указанный звук или мелодия.

Кому интересно не много узнать об этой функции, теперь по подробнее:

function PlaySound(pszSound:PChar; hmod:HINST; fdwSound:Cardinal) :boolean;

pszSound:  — Здесь задает имя звукового файла или адрес ресурса, по которому находится звук (в нашем коде это (‘C:/Мелодия.wav’));

hmod: — Handle на модуль где содержится ресурс, он используется только при хранении звуковых данных в ресурсе, а для загрузки звукового файла он должен быть равен нулю NULL или 0;  (в нашем случае, поскольку мы проигрываем звуковой файл это (0));

fdwSound: — Управляющий флаг (Способ воспроизведения). Ниже привожу некоторые «флажки»:

SND_MEMORY — Проигрывание содержимого памяти (Если звук помещен в переменную памяти);

SND_SYNC — Проигрывать синхронно; (Флаг замораживает программу на время воспроизведения);

SND_ASYNC — Проигрывать асинхронно; (Выполняется не зависимо от процесса работы программы);

SND_LOOP — Воспроизведение постоянно повторяется;

SND_PURGE — Остановка звука;

Существуют также другие флаги для управления воспроизведением, а в нашем случае использован флаг (SND_ASYNC);

Флаги также можно комбинировать с помощью логической операции or или знака + ; Например для непрерывного асинхронного воспроизведения мы можем перестроить наш код следующим образом: