|
unit WinSound_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, MPlayer;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer; // медиаплеер
Label1: TLabel; // информационное сообщение
ListBox1: TListBox; // список WAV-файлов
Label2: TLabel; // выбранный из списка файл
procedure FormActivate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
const
SOUNDPATCH='c:\windows\media\'; // положение звуковых файлов
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
var
SearchRec: TSearchRec; // структура, содержащая информацию о файле,
// удовлетворяющем условию поиска
begin
Form1.MediaPlayer1.Play;
// сформируем список WAV-файлов, находящихся
// в каталоге c:\windows\media
if FindFirst(SOUNDPATCH+'*.wav', faAnyFile, SearchRec) =0 then
begin
// в каталоге есть файл с расширением WAV
// добавим имя этого файла в список
Form1.ListBox1.Items.Add(SearchRec.Name);
// пока в каталоге есть другие файлы с расширением WAV
while (FindNext(SearchRec) = 0) do
Form1.ListBox1.Items.Add(SearchRec.Name);
end;
end;
// щелчек на элементе списка
procedure TForm1.ListBox1Click(Sender: TObject);
begin
// вывести в поле метки Label2 имя выбранного файла
Label2.Caption:=ListBox1.Items[ListBox1.itemIndex];
end;
// щелчок на кнопке компонента MediaPlayer
procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin
if (Button = btPlay) and (Label2.Caption <> '') then
begin
// нажата кнопка Play
with MediaPlayer1 do
begin
FileName:=SOUNDPATCH+Label2.Caption; // имя выбранного файла
Open;
Play;
end;
end;
end;
end.
Так всегда работает. Если надо еще кучу процедур могу в примерах написать. И с простой генерацией произвольного сигнала не из файла.
|