тільки корисні матеріали
Головний акціонер Alibaba став найбагатшою людиною в Китаї
статті
Microsoft почала закрите тестування Office 16
статті
Фахівці знайшли діри в безпеці Windows 8.1
статті
У московському метро з'явиться єдина мобільна мережа
статті
eBay буде приймати Bitcoin
статті
Vivitek представила «шкільний» проектор D755WTIR
статті
У Твіттері з'явилася кнопка «Купити»
статті
«Яндекс.Новини» тепер можна переглядати і на iPhone
статті
Парадокс, але я часто стикаюся з тим, що багато хто не вміють відтворювати звук в програмі без використання компонента 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.
PlaySound ( 'D: \ 1.wav'. 0, SND_ASYNC or SND_LOOP);
Ось в принципі і все що я хотів розповісти вам в цьому уроці. До зустрічі.