- Регистрация
- 9 Май 2015
- Сообщения
- 1,551
- Баллы
- 155
Многие начинающие - Делфисты сталкиваются с ситуацией, когда нужно проиграть какой нибудь звук, безприменения компонента MediaPlayer.
Сделать это можно достаточно просто, нужно лишь воспользоваться функцией 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 или знака + ; Например для непрерывного асинхронного воспроизведения мы
можем перестроить наш код следующим образом:
Ну вот вроде бы и все...
Сделать это можно достаточно просто, нужно лишь воспользоваться функцией API PlaySound. Для этого:
1) Прописываем в Uses модуль MMSystem и кидаем на форму один Button;
2) Создаем обработчик событий OnClick на кнопке где прописываем следующее:
Код:
begin
PlaySound('C:/Мелодия.wav', 0, SND_ASYNC);
end;
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 или знака + ; Например для непрерывного асинхронного воспроизведения мы
можем перестроить наш код следующим образом:
Код:
begin
PlaySound('C:/Мелодия.wav', 0, SND_ASYNC + SND_LOOP);
end;
Ну вот вроде бы и все...