Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание класса 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 в проект, и ваши приложения предстанут в совершенно новом свете!
|