Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры и задачи.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.66 Mб
Скачать

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, MPlayer, ExtCtrls, MMSYSTEM; type

TForml = class(TForra)

MediaPlayer: TMediaPlayer;

TrackBar: TTrackBar;

Buttonl: TButton;

Timerl: TTimer;

Label1: TLabel;

Label2: TLabel;

procedure TrackBarChange(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure ButtonlClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure TimerlTimer(Sender: TObject);

private

{ Private declarations } public

/ Public declarations j end;

var

Forml: TForml;

Implementation

{$R *.dfm}

var

Track: integer;

// пользователь изменил положение бегунка procedure TForml.TrackBarChange(Sender: TObject);

var

trk: integer; // трек, который надо воспроизвести

begin

trk :=TrackBar.Position;

if trk > MCI_TMSF_TRACK(MediaPlayer.Position) then while trk > MCI_TMSF_TRACK(MediaPlayer.Position) do MediaPlayer.Next

5 Зак. 939

130

e lse

while trk < MCI_TMSF_TRACK(MediaPlayer.Position) do

MediaPlayer.Previous; end;

// кнопка Play/Stop

procedure TForml.ButtonlClick(Sender: TObject);

begin

if Buttonl.Tag = 0 then begin

Buttonl.Caption := 'Stop'; Buttonl.Tag :=1; MediaPlayer.Play; end else begin

Buttonl.Caption : = 'Play'; Buttonl.Tag :=0; MediaPlayer.Stop; end; end;

procedure TForml .FormActivate.(Sender: TObject); begin

if (MediaPlayer.Mode = mpStopped) and

(MediaPlayer.Tracks > 1) then begin

Buttonl.Enabled := True; TrackBar.Max := MediaPlayer.Tracks; end else begin

labell.Caption := 'Вставьте в дисковод Audio CD'; end; end;

// сигнал от таймера

procedure TForml.TimerlTimer(Sender: TObject);

var

trk, // грек

min, sec: byte; // время begin

case MediaPlayer.Mode of

Части

Примеры и задачи

mpPlaying: // режим воспроизведения

begin

min := MCI_TMSF_MINUTE(MediaPlayer.Position); sec := MCI_TMSF_SECOND(MediaPlayer.Position) ; Label2.Caption :=

Format('%d:%.2d',[min,sec]);

// определим, надо ли перемещать бегунок trk := MCI_TMSF_TRACK(MediaPlayer.Position); if trk <> Track then begin

Track:= trk;

TrackBar.Position := Track;

Labell.Caption :=

Format('Track %d.',[trk]); end; end;

mpOpen: // дисковод открыт или в нем нет диска begin

if Buttonl.Enabled then

begin

Labell.Caption :='Вставьте в дисковод Audio CD';

Label2.Caption :='';

Buttonl.Enabled := False; // режим ожидания диска Buttonl.Caption := 'Play1; end;

// мигание сообщения if Labell.Visible

then Labell.Visible := False

else Labell.Visible := True;

end;

mpStopped: // штеер остановлен begin

if not Buttonl.Enabled then begin

// плеер был в режиме ожидания диска // теперь диск вставлен MediaPlayer.Open; Buttonl.Enabled := True;

132

Примеры и задачи

133

Label1.Caption := 'Track: 1'; Label1.Visible := True; Label2.Caption:= ''; TrackBar.Position := 1; TrackBar.Max := MediaPlayer.Tracks; end;

if Buttonl.Tag = 1 then begin

// завершено воспроизведение последнего трека Buttonl.Caption := 'Play'; Buttonl.Tag :=0; TrackBar.Position := 1; Labell.Caption := 'Track I1; Label2.Caption := ''; end; end; end; // case

end;

procedure TForml.FormClose(Sender: TObject;

var Action: TCloseAction); begin

MediaPlayer.Stop; end;

end.

49. Напишите программу МРЗ Player. Программа должна обес-J печивать возможность выбора каталога, в котором находятся! МРЗ-файлы, а также регулировку громкости звука непосредст-1 венно в диалоговом окне программы. Для отображения спискад МРЗ-файлов используйте компонент ListBox, а для управления! медиаплеером — кнопки speedButton. Рекомендуемый вид фор-1 мы программы приведен на рис. 1.50.

{ МРЗ Player с регулятором громкости.

(с) КультинН.Б., 2003. } unit mp3p_;