Воспроизведение звука
Наличие у компонента MediaPlayer свойства visible позволяет скрыть компонент от пользователя и при этом применять его для воспроизведения звука без участия пользователя. Например, следующая программа пересчитывает вес из фунтов в килограммы и сопровождает выдачу результата звуковым сигналом. В случае, если пользователь забудет ввести исходные данные или введет их неверно, программа выведет сообщение об ошибке, также сопровождаемое звуковым сигналом. Вид диалогового окна программы во время ее разработки приведен на рис. 11.7, значения свойств компонента MediaPlayer в табл. 11.7. Текст модуля программы приведен в листинге 11.3.
Рис. 11.7. Диалоговое окно программы Фунты-килограммы
Таблица 11.7. Значения свойств компонента MediaPiayer1.
Свойство | Значение |
---|---|
Name DeviceType | MediaPiayer1 |
FileName | dtAutoSelect с: \winnt\media\ding.wav |
AutoOpen | True |
Visible | False |
Листинг 11.3. Использование компонента MediaPlayer для вывода звука.
unit FuntToKg1_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCTRLs, MPlayer; type TForm1 = class (TForm) Edit1: TEdit; // поле ввода веса в фунтах Button1: TButton; // кнопка Пересчет Label2: TLabel; // поле вывода результата Label1: TLabel; // поле информационного сообщения MediaPlayer1: TMediaPlayer; // медиаплеер procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM) // щелчок на кнопке Пересчет procedure TForm1.ButtonlClick(Sender: TObject); var f: real; // вес в фунтах k: real; // вес в килограммах begin form1.Label2.Caption: =' '; try // возможна ошибка, если в поле // Edit1 будет не число f: = StrToFloat(Edit1.Text); Forml.MediaPlayer1.Play; // звуковой сигнал k: = f*0.4095; Label2.caption: = Editl.text+' ф. – это ' + FloatToStrF(k,ffGeneral,4.2}+' кг. '; except on EConvertError do // ошибка преобразования begin // определим и проиграем звук "Ошибка" Form1.MediaPlayer1.FileName: = 'c:\windows\media\chord.wav'; Form1.MediaPlayer1.Open; Form1.MediaPlayer1.Play; // звуковой сигнал ShowMessage('Ошибка! Вес следует ввести числом.'); form1.Edit1.SetFocus; // курсор в поле ввода // восстановим звук Forml.MediaPlayer1.FileName: = 'c:\windows\media\ding.wav'; Forml.MediaPlayer1.Open; end; end; end; end.