Проигрывание Wave-файлов під MFC
Правильно, то функція возврвщает TRUE, інакше FALSE. Теперь можна програти ресурс: PlayResource (IDSOUND_CORRECT); Проигрывания файла. Щоб зупинити програвання,. Цьому ви повинні використовувати влаг SND_ASYNC. Проигрывает стандартний звуковий ефект Windows. Не повертає покажчик поки що не кінця файла. SND_MEMORY Цей параметр потрібен для програвання. Надо викликати функцію SndPlaySound… Читати ще >
Проигрывание Wave-файлов під MFC (реферат, курсова, диплом, контрольна)
Проигрывание Wave-файлов під MFC
1. Введение
В цієї главі ми створимо програму, проигрывающую WAVE-файлы. Спочатку створимо проект mysound в діалоговому режимі з використанням MFC. У початок файла mysoundDlg. cpp треба написати #include <mmsystem.h>, але ці не все, тепер найголовніше (якщо цього зробити, він помилка при линковании) :
1. Виберіть Project -> Settings… —> C/C++ —> Code Generation і поставте Multithreaded DLL.
2. Виберіть Project -> Settings… —> Link —> General і поставте на полі Object/Library modules бібліотеку winmm. lib (дуже важливо, проверте !!!).
2. Програвання Wave-файла як ресурса
Первым справою треба створити ресурс, при цьому в файлі mysound. rc2 треба вписати рядок IDSOUND_CORRECT sound rescorrect. wav, де IDSOUND_CORRECT — индефикатор ресурсу, sound — тип ресурсу (назва можна змінювати), rescorrect. wav — файл ресурсу. Після цього, у файлі Resource. h треба зареєструвати ресурс: #define IDSOUND_CORRECT 130. Кількість 130 на повинен збігатися коїться з іншими числами.
Как лише ресурс зареєстрований написати в файлі mysoundDlg. cpp функції програвання цього ресурсу :
static void PlayResource (LPCTSTR lpszSound) { HRSRC hRes; // resource handle to wave file HGLOBAL hData; BOOL bOk = FALSE; if ((hRes = :FindResource (AfxGetResourceHandle (), lpszSound, _T («sound »))) ≠ NULL &&.
(hData = :LoadResource (AfxGetResourceHandle (), hRes)) ≠ NULL) {.
// found the resource, play it bOk = sndPlaySound ((LPCTSTR):LockResource (hData), SND_MEMORY|SND_SYNC|SND_NODEFAULT); FreeResource (hData); } if (!bOk) { AfxMessageBox («ERROR !!! Can not play the sound.
nNot find sound board !!! "); } } inline static void PlayResource (UINT nIDS) { PlayResource (MAKEINTRESOURCE (nIDS)); }.
В фунции: FindResource (AfxGetResourceHandle (), lpszSound, _T («sound »)) третій параметр — тип ресурсу, який був описаний выше.
Теперь можна програти ресурс: PlayResource (IDSOUND_CORRECT);
3. Програвання Wave-файла з диска Для програвання WAVE-файла з диска можна використовувати функцію :
BOOL sndPlaySound (LPCTSTR lpszSoundName;
UINT fuOptions;); Параметри функції:
lpszSoundName Ім'я файла. Якщо це параметр NULL,.
то програвання файла зупиняється. fuOptions.
Специальные опції для програвання музики.
Они може бути такими:
Значение Опис.
SND_SYNC Музика грається одночасно, й третя функція.
не повертає покажчик поки що не кінця файла.
SND_ASYNC Музика грається асинхронно, і функция возвращает покажчик відразу від початку.
проигрывания файла. Щоб зупинити програвання,.
надо викликати функцію SndPlaySound з параметром.
lpszSoundName встановленим у NULL.
SND_NODEFAULT Якщо файл не знайдено, то функція.
возвращает покажчик відразу й не.
проигрывает стандартний звуковий ефект Windows.
SND_MEMORY Цей параметр потрібен для програвання.
Wave-файла як ресурсу (з пам’яті).
SND_LOOP Цей параметр потрібен для програвання.
Wave-файла в циклічний режимі. Також.
цьому ви повинні використовувати влаг SND_ASYNC.
Щоб зупинити програвання, треба викликати.
функцію SndPlaySound з параметром.
lpszSoundName встановленим у NULL.
SND_NOSTOP Якщо музика вже проигрывается,.
то функція возврвщает FALSE.
Яке значення: Якщо музика програється.
правильно, то функція возврвщает TRUE, інакше FALSE.
Приклад використання: B.
OOL bOk = sndPlaySound («test.wav », SND_SYNC);
if (!bOk) { AfxMessageBox.
(«Error ! Can not play the sound. !!! »); }.
Список литературы
Для підготовки даної роботи було використані матеріали із сайту internet.