Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Проигрывание 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.

Показати весь текст
Заповнити форму поточною роботою