|
| | |
|
Delphi урок - Воспроизводим звук в программе без MediaPlayer
Delphi урок - Воспроизводим звук в программе без MediaPlayer
Парадокс, но я часто сталкиваюсь с тем, что многие не умеют воспроизводить звук в программе без использования компонента MediaPlayer. В этом небольшом уроке я хочу исправить это дело и показать вам, как проиграть у себя в программе звуковой файл в формате Wav без использования MediaPlayer.
На самом деле делается это очень просто. Достаточно всего лишь добавить в раздел uses модуль mmsystem
И далее в месте где вам нужно воспроизвести звук использовать функцию PlaySound
function 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.
|
Категория: DELPHI | Добавил: SeM (09.04.2011)
|
Просмотров: 1838
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
| | |
|
|
| Коменнтарии
| |
Извиняюсь, заработал. Спасибо за урок
Давайте помогу разобраться ? вы хотите что бы когда выбиралась станция сразу начинала проигрывать? скиньте исходник или как лучше связаться с вами?
Нифига не робит... Кто знает как сделать чтобы на жесткий жертвы сохранял.. ISQ 606017777
|
|
|
| Отзывы Фото
| |
6 микр. Красивое место.... Старый музей но щас его перенесли... Фотография под горы Красивое фото!!! |
|
|