Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
default.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
981.5 Кб
Скачать

Лабораторна робота №3

СТВОРЕННЯ ВІДЕО ПРОГРАВАЧА

Створення відео програвача засноване на використанні стандартного компоненту TMediaPlayer. У лабораторній даній роботі приведені основні фрагменти початкової коди.

Почати необхідно з ініціалізації створення форми:

procedure TForm1.FormCreate(Sender: TObject);

begin

MediaPlayer.Display := Form1;

SpeedButton1.GroupIndex := 1;

SpeedButton1.AllowAllUp := True;

end;

Процедура повертає розмір зображення AVI файлу:

procedure DimAvi(f: string; var w,h: integer);

var

fst: TFileStream;

header: record

RIFF: array[1..4] of char;

nu1: array[1..5] of LongInt;

AVIH: array[1..4] of char;

nu2: array[1..9] of LongInt;

Width: LongInt;

Height: LongInt;

end;

begin

fst := TFileStream.Create(f,fmOpenRead);

fst.Read(header,sizeof(header));

w := header.Width;

h := header.Height;

fst.Destroy;

end;

Процедура клацання на кнопці Eject (вибір файлу)

procedure TForm1.SpeedButton2Click(Sender: TObject);

var

top,left: integer; // лівий верхній кут "екрану"

width,height: integer; // розмір екрану

mw,mh: integer; // максимально можливий розмір екрану

kh,kw: real; // коефіцієнти масштабування по висоті і довжині

до: real; // коефіцієнти масштабування

begin

OpenDialog.Title := 'Вибір кліпу';

if not OpenDialog.Execute

then exit;

Якщо користувач вибрав файл, тоді визначимо розмір і положення "екрану" (області на поверхні форми) на якому буде виведений кліп.

DimAvi(OpenDialog.FileName,width,height);

mh:=SpeedButton1.Top - 10;

mw:=Form1.ClientWidth;

if mh > height

then kh :=1

else kh := mh/height;

if mw > width

then kw :=1

else kw := mw/width;

if kw < kh

then до := kw

else до := kh;

Масштаб визначений

width := Round(width * до);

height := Round(height * до);

left := (Form1.ClientWidth - width ) div 2;

top := 10;

MediaPlayer.FileName := OpenDialog.FileName;

MediaPlayer.Open;

MediaPlayer.DisplayRect := Rect(left,top,width,height);

SpeedButton1.Enabled := True;

end;

Клацання на кнопці Play/Stop

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

if SpeedButton1.Down then

begin

почати відтворення

MediaPlayer.Play;

SpeedButton1.Hint := 'Stop';

end

else begin

зупинити відтворення

MediaPlayer.Stop;

SpeedButton1.Hint := 'Play';

end;

end;

сигнал від плейєра

procedure TForm1.MediaPlayerNotify(Sender: TObject);

begin

if (MediaPlayer.Mode = mpStopped )

and SpeedButton1.Down

then

SpeedButton1.Down := False; // "віджати" кнопку Play

end;

end.

У даному проекті необхідно допрацювати/додати.

- Прокрутку відео файлу (Trackbar);

- Паузу під час перегляду;

- Створити можливість згортати програму в системний лоток (tray), а також управляти базовими функціями (start, stop, pause) з системного лотка.

Рис 6. Відеоплеєр

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]