Найбільш простою процедурою, що управляє звуком, є процедура Віяло. Вона не має параметрів і відтворює стандартний звуковий сигнал, встановлений в Windows. якщо комп'ютер має звукову карту і стандартний сигнал заданий (він встановлюється в програмі Windows «Панель управління» після клацання на піктограмі Звук). Якщо звукової карти немає або стандартний сигнал не встановлено, звук відтворюється через динамік комп'ютера просто у вигляді короткого клацання.
Відкрийте новий додаток, перенесіть на нього кнопку, в обробнику клацання якої напишіть одне слово:
Можете запустити додаток, клацнути на кнопці і прослухати стандартний звук Windows або просто клацання, якщо стандартний звук не встановлено.
Більш серйозною процедурою є функція Windows API MessageBeep:
bool MessageBeep (int uType);
Параметр uType вказує відтворений звук як ідентифікатор розділу [sounds] реєстру, в якому записані звуки, які супроводжують ті чи інші події в Windows. За допомогою програми Звук в «Панелі управління» користувач може видалити або встановить відповідні звуки.
Параметр uType може мати наступні значення:
Після запиту звуку функція MessageBeep повертає управління викликала функції і відтворює звук асинхронно. Під час відтворення додаток може продовжувати виконуватися.
Якщо неможливо відтворити вказаний в функції звук, робиться спроба відтворити стандартний системний звук, встановлений за замовчуванням. Якщо і це неможливо, то стандартний тон через динамік.
При успішному виконанні повертається нульове значення. При аварійному завершенні повертається нуль. Можете в своєму тестовому додатку ввести ще одну кнопку і написати для неї обробник:
Ви почуєте той же стандартний звук Windows. що і при виконанні процедури Віяло. Або почуєте той же тихий клацання, якщо стандартний звук не встановлено. Спробуйте встановити різні звуки за допомогою «Панелі управління» і перевірити MessageBeep при різних значеннях її параметра.
А тепер давайте займемося більш серйозною функцією PlaySound. яка дозволяє відтворювати не тільки звуки подій Windows. але і будь-які хвильові файли. Це функція API Windows. параметри якої описані в модулі mmsystem. Тому для використання цієї функції в вашому додатку необхідно включити директиву #include
Функція PlaySound визначена наступним чином:
bool PlaySound (char * pszSound, HINST hmod, Int fdwSound);
Параметр pszSound є рядком з нульовим символом в кінці і визначає відтворений звук. Параметр hmod використовується, якщо звук береться з ресурсу. А оскільки далі звуком з ресурсу ми користуватися не будемо, то hmod завжди можна задавати рівним 0.
Параметр fdwSound є безліччю прапорів, які визначають режим відтворення і тип джерела звуку. Нижче наведені значення найбільш важливі для відтворення довільних хвильових файлів: