Среда, 02.07.2025, 02:05:19
Вітаю Вас Гость | RSS
Europe already in us!
Головна
Реєстрація
Вхід
Меню сайту

Розділи новин
Блог [4]
Мой блог
Розважуха [5]
Три гостя и Любовь...
Україна [20]
Главные новости...
Уроки [3]
Delphi
Статьи [13]
Delphi, C++Builder...
Поздравление... [24]
Greeting to the holiday...
Статьи от Админа [11]
News from...

Головна » 2009 » Март » 26 » Воспроизводим звук в программе без MediaPlayer
Воспроизводим звук в программе без MediaPlayer
08:45:53

Delphi
Воспроизводим звук в программе без MediaPlayer

     Парадокс, но я часто сталкиваюсь с тем, что многие не умеют воспроизводить звук в программе без использования компонента MediaPlayer. В этом небольшом уроке я хочу исправить это дело и показать вам, как проиграть у себя в программе звуковой файл в формате Wav без использования MediaPlayer.

     На самом деле делается это очень просто.
     Достаточно всего лишь добавить в раздел uses модуль mmsystem
     И далее в месте где вам нужно воспроизвести звук использовать функцию PlaySound

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

     Как всегда разберем это на конкретном примере.

     Первым делом открываем Delphi, создаем новый проект и дописываем в раздел uses модуль mmsystem.
Далее кидаем на форму кнопку (Button) с закладки Standard и создаем на ней обработчик событий Onclick.
Между begin end пишем:

PlaySound('D:\1.wav', 0, SND_ASYNC);

     Первый параметр в нашей функции это полный путь к звуковому файлу с указанием его расширения, т.к. у меня файл называется 1.wav и находиться на диске D:\ я написал тут 'D:\1.wav'.
Второй параметр используется в случае, когда звук берется из ресурса, поскольку мы этого делать не будем, то можно этот параметр задавать равным 0 или nil.
     Последний параметр определяет, как будет воспроизводиться звук (режим воспроизведения). Существует несколько режимов воспроизведения которые задаются соответствующими флагами, вот пример некоторых из них:

SND_ASYNC - Звук воспроизводится асинхронно и функция возвращается сразу же после начала воспроизведения. Чтобы прекратить воспроизведение нужно вызвать функцию PlaySound с параметром pszSound, равным 0.
SND_LOOP - воспроизведение звука постоянно повторяется, одновременно надо установить флаг SND_ASYNC.
SND_NOSTOP - Если заданный звук не может быть воспроизведен из-за занятости ресурсов, то функция немедленно вернет false (и звук не будет воспроизведен). Если же данный флаг не указан, то функция попытается остановить воспроизведение другого звука, чтобы освободить ресурсы.
SND_PURGE - Останавливает воспроизведение любых звуков, вызванных в данной задаче.
SND_SYNC - Синхронное воспроизведение звука события. Функция PlaySound возвращается только после окончания воспроизведения.

т.е. Если мы хотим, чтобы звук воспроизводился асинхронно и постоянно повторялся в нашей функции нужно использовать флаги SND_ASYNC и SND_LOOP. Комбинировать флаги можно при помощи операции or.

Пример:

PlaySound('D:\1.wav', 0, SND_ASYNC or SND_LOOP);



Категорія: Статьи | Переглядів: 995 | Додав: SysAdmin | Рейтинг: 5.0/2 |
Всього коментарів: 0

Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу

Календар новин
«  Март 2009  »
Пн Вт Ср Чт Пт Сб Вс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Пошук

Друзі сайту
Все друзья на карте! Пиши українською Профессиональные высококачественные фото красивейших женщин мира.

Статистика
Online.ua
Рейтинг@Mail.ru EOMY TOP 100 Курси валют
Онлайн всего: 2
Гостей: 2
Пользователей: 0

Наш Банер
Персональный Сайт Александра Даниленко

Top news
завантаження...


Copyright ®Open Corporation AVD™ © 2008-2025
-->