Форма входа

Категории раздела

Мои файлы [12]
Полезности [15]

Поиск

Наш опрос

Оцените мой сайт
Всего ответов: 62

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0




Понедельник, 25.11.2024, 08:47
Приветствую Вас Гость | RSS

Delphiport.ucoz.com

Главная | Регистрация | Вход
Полезные советы


Главная » Файлы » Мои файлы

Проигрываем .wav звучки без MediaPlayer
04.11.2011, 15:10

   Многие начинающие - Делфисты сталкиваются с ситуацией, когда нужно проиграть какой нибудь звук, безприменения компонента MediaPlayer.

Сделать это можно достаточно просто, нужно лишь воспользоваться функцией 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;

Ну вот вроде бы и все...



Категория: Мои файлы | Добавил: Sashok
Просмотров: 1364 | Загрузок: 0 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright MyCorp © 2024