Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание класса WavePlayer






Вы научились воспроизводить WAV-файлы средствами Windows API. Следующим шагом станет создание универсального класса WavePlayer, который можно будет включать в будущие проекты. Класс достаточно прост, но его легко расширить, например добавить возможность управления громкостью звука. Наш класс Wave Player содержит два свойства и один метод. Он создается следующим образом:

1. Создайте новый проект командой File > New Project. Выберите тип проекта Standard EXE.

2. Задайте свойству Name формы Form1 значение frmMain, а свойству Caption — значение WavePlayer.

3. Создайте кнопку на форме frmMain. Задайте ее свойству Name значение cmdPlay, а свойству Caption — значение & Воспроизвести.

4. Включите в класс новый модуль класса. Для этого щелкните правой кнопкой мыши в окне проекта и выполните команду Add > Class Module из контекстного меню.

5. В открывшемся диалоговом окне Add Class Module выберите значок Class Module и нажмите кнопку Open.

6. В окне свойств задайте свойству Name созданного класса значение WavePlayer.

7. Включите следующий фрагмент в секцию (General)(Declarations) класса WavePlayer:

Option Explicit

Private mFilename As String Private mFlags As Long

Private Declare Function sndPlaySound Lib " winmm.dll" Alias " sndPlaySoundA" (ByVal IpszSoundName As String, _ ByVal uFlags As Long) As Long

8. Добавьте следующие процедуры, образующие интерфейс к свойству Filename:

Public Property Get Filename() As String

filename = mFilename End Property

Public Property Let Filename(ByVal vNewValue As String)

mFilename = vNewValue End Property

9. Добавьте следующие процедуры, образующие интерфейс к свойству Flags:

Public Property Get Flags() As Long

Flags = mFlags End Property

Public Property Let Flags(ByVal vNewValue As Long)

mFlags = vNewValue End Property

10. Добавьте следующий фрагмент единственного метода класса:

Public Sub Play() Dim rc As Long

rc = sndPlaySound(mFilename, mFlags) End Sub

11. Сохраните проект. Если вы создали программную библиотеку в уроке 4, сохраните файл WavePlayer.cls в каталоге библиотеки, что упростит его повторное использование в будущем. Оставьте файл проекта в исходном каталоге.

12. Откройте окно программы для frmMain и перейдите в секцию (General) (Declarations).

13. Чтобы воспользоваться объектом WavePlayer, необходимо создать ссылку на него. Добавьте следующий фрагмент:

Option Explicit

Private wav As WavePlayer

14. Ссылка на объект имеется, теперь мы должны создать экземпляр указанного класса. Лучше всего сделать это в процедуре события Form_Load. Вставьте в процедуру следующий фрагмент:

Private Sub Form_Load()

Set wav = New WavePlayer End Sub

15. При завершении работы приложения объект WavePlayer необходимо уничтожить. Для этого вы присваиваете ему Nothing и таким образом освобождаете занимаемую им память. Вставьте следующий фрагмент в процедуру события Form_Unload:

Private Sub Form_Unload(Cancel As Integer)

Set wav = Nothing End Sub 16. Наконец, вставьте следующий фрагмент в процедуру события cmPlay_Click. В нем объект WavePlayer непосредственно воспроизводит WAV-файл:

Private Sub cmdPlay_Click() With wav

.Filename = App.Path & " \Tada.wav".Flags = 1.Play End With End Sub

ПРИМЕЧАНИЕ Перед запуском приложения скопируйте воспроизводимый файл (в нашем примере — tada.wav) в каталог проекта. При желании можно легко заменить этот файл любым другим, который вы хотите услышать.

7. Сохраните и запустите приложение.

Несмотря на свою простоту, этот пример показывает, как легко преобразовать автономную процедуру в объект с помощью модулей классов. Кроме того, класс WavePlayer можно будет использовать в ваших будущих проектах. Вам уже не придется запускать API Viewer или запоминать, какая функция воспроизводит WAV-зайлы. Достаточно включить класс WavePlayer в проект, и ваши приложения предстанут в совершенно новом свете!


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал