Delphi 3. Библиотека программиста

       

Звук в приложении


Дневник №16, 22 марта. Сегодня я научился воспроизводить WAV-файлы в приложениях, написанных на Delphi. Это оказалось вовсе не сложно. Я подумал, как бы здорово было, если при нажатии на кнопку вдруг зазвучал бы голос одного из моих любимых героев — Хамфри Богарта!

На рис. 14.4 показана форма, которую я использовал для экспериментов. Исходный текст содержится в листинге 14.10.

Рис. 14.4. Форма для воспроизведения WAV-файла

Листинг 14.10. Демонстрационная программа для воспроизведения WAV-файлов

{—————————} {Воспроизведение WAV-файла (демонстрационная программа)} {PLAYMAIN.PAS : Главный модуль } {Автор: Эйс Брейкпойнт, N.T.P. } {При содействии Дона Тейлора } { } {Приложение, демонстрирующее воспроизведение } {WAV-файлов в приложениях, написанных на Delphi } { } { Написано для *High Performance Delphi 3 Programming* } { Copyright (c) 1997 The Coriolis Group, Inc. } { Дата последней редакции 3/5/97 } {—————————} unit playmain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MMSystem; type TForm1 = class(TForm) BadgeBtn: TButton; ExitBtn: TButton; Label1: TLabel; Label2: TLabel; procedure BadgeBtnClick(Sender: TObject); procedure ExitBtnClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.BadgeBtnClick(Sender: TObject); begin if not PlaySound("badges.wav", 0, SND_FILENAME) then MessageDlg("Problem playing sound file", mtError, [mbOK], 0); end; procedure TForm1.ExitBtnClick(Sender: TObject); begin Close; end; end.

Сначала мне показалось, что файл обязательно придется воспроизводить с помощью компонента MediaPlayer. Вскоре я обнаружил альтернативное решение — низкоуровневую функцию PlaySound из модуля MMSystem. Вызывая эту функцию, я просто передаю ей имя файла и константу SND_FILENAME, которая показывает, что функция должна воспроизвести звук, хранящийся в файле. Проще не бывает.

Примечание для себя: в эксперименте использовался файл BADGES.WAV с фрагментом знаменитого диалога из классического фильма Богарта «Сокровище Сьерра-Мадре» (1948 г.). Кстати, один из моих любимых.

Конец записи (22 марта).



Содержание раздела