Възпроизвеждане на звук

Звуковите клипове са във файлове с разширение WAV. Например в директорията C:\Winnt\Media можете да намерите файлове със стандартни звуци на Windows.

Следната програма (нейният диалогов прозорец е показан на Фигура 11.6 и текстът в листинг 11.2) демонстрира как да използвате компонента ediaPiayer за възпроизвеждане на аудио клипове от WAV файлове.

В допълнение към компонента MediaPiayer, формулярът съдържа компонент ListBox и два компонента Label, първият от които се използва за показване на информационно съобщение, а вторият се използва за показване на името на WAV файла, избран от потребителя от списъка.

Програмата работи по следния начин. След като се появи диалоговият прозорец, "Microsoft Sound" се възпроизвежда, тогава потребителят може да избере всеки от звуковите файлове, намиращи се в директорията C:\Windows\Media от списъка и след като щракне върху бутонаPlay, да чуе какво има в този файл.

звук

Фиг. 11.6.Програмна формаЗвуци на Microsoft Windows

Стойностите на променените свойства на компонента MediaPlayerl са дадени в таблица. 11.6, стойностите на останалите свойства остават непроменени.

Таблица 11.6.Стойности на свойствата на компонента MediaPlayer1

Списък 11.2. Звуци на Microsoft Windows

Windows, Съобщения, SysUtils,

Класове, графики, контроли, формуляри,

Диалози, StdCtrls, MPlayer;

MediaPlayerl: TMediaPlayer; // медиен плейър

Етикет1: Етикет T; // информационно съобщение

ListBox1: TListBox; // списък с wav файлове

Етикет2: Етикет T; // избран файл от списъка

процедураFormActivate(Подател: TObject);

процедураListBoxlClick(Подател: TObject);

процедураMediaPlayerlClick(Подател: TObject; Бутон: TMPBtnType;

varDoDefault: Boolean);лично

SOUNDPATCH='c:\winnt\media\'; // местоположението на звуковите файлове

процедураTForm1.FormActivate(Подател: TObject);

SearchRec: TSearchRec; // структура, съдържаща информация за файла,

// което отговаря на условието за търсене

// създаване на списък с WAV файлове, разположени

// в директория c:\winnt\media

акоFindFirst(SOUNDPATCH+'*.wav', faAnyFile, SearchRec) =0след това

// има WAV файл в директорията

// добавете името на този файл към списъка

// докато има други WAV файлове в директорията

while(FindNext(SearchRec) = 0) направете

// щракнете върху елемент от списъка

процедураTForm1.ListBoxlClick(Подател: TObject);

// показва името на избрания файл в полето за етикет Label2

// щракнете върху бутона на компонента Media Player

процедураTForm1.MediaPlayerlClick(Подател: TObject; Бутон: TMPBtnType;

varDoDefault: Boolean);започнете

ако(Бутон = btPlay)и(Етикет2.Надпис<> ''), тогава

// натиснат бутон за възпроизвеждане

Име на файл:=SOUNDPATCH+Label2.Caption; // име на избрания файл

отворен; // отваряне и възпроизвеждане на звуков файл

Възпроизвеждането на звук веднага след стартиране на програмата активира процедурата за събитие onFormActivate чрез прилагане на метода Play към компонента MediaPlayerl (действието на този метод е подобно на щракване върху бутонаPlay).Същата процедура генерира списък с WAV файлове, разположени в директорията C:\Winnt\Media. За формиране на списъка се използват функциите FindFirst и FindNext, които,съответно те търсят първия и следващия (по отношение на последния намерен от функцията FindFirst или FindNext) файл, който отговаря на критериите, посочени при извикване на функциите. И на двете функции се предават като параметри маска на WAV файл (критерий за търсене) и променлива - структурата searchRec, чието поле Name, в случай на успешно търсене, ще съдържа името на файл, който отговаря на критериите за търсене.

Щракване върху елемент от списък се обработва от процедурата TForm1.ListBox1Click, която показва името на избрания от потребителя файл в полето за етикет на Label2 (по време на работа на програмата свойството ItemIndex съдържа номера на елемента от списъка, върху който е щракнато).

В резултат на щракване върху един от бутоните на компонента MediaPiayeri се активира процедурата TForm1.MediaPiayer1Сlick, която проверява кой от бутоните на компонента е натиснат. Ако се натисне бутонътВъзпроизвеждане(btPlay), свойството FileNameнаMediaPiayeriкомпонентасе задава на името на избрания от потребителя файл, след което отвореният метод зарежда този файл и активира процеса на възпроизвеждането му.

Наличието на свойство visible на компонента MediaPiayer ви позволява да скриете компонента от потребителя и в същото време да го използвате за възпроизвеждане на звук без намеса на потребителя. Например следната програма преобразува теглото от паундове в килограми и придружава извеждането на резултата със звуков сигнал. Ако потребителят забрави да въведе първоначалните данни или ги въведе неправилно, програмата ще изведе съобщение за грешка, придружено и със звуков сигнал. Изгледът на диалоговия прозорец на програмата по време на нейното разработване е показан на фиг. 11.7, стойностите на свойствата на компонента MediaPlayer в табл. 11.7. Текстът на програмния модул е ​​показан в листинг 11.3.

компонента

Фиг. 11.7.Диалогпрограмен прозорецПаунд-килограми

Таблица 11.7.Стойности на свойствата на компонента MediaPiayer1