
- •Методічні вказівки та контрольні завдання
- •Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота №3
- •Лабораторна робота №4
- •Лабораторна робота №5
- •Процедура конвертації форматів bmp в wmf
- •Конвертація bmp в ico
- •Лабораторна робота №6
- •Завдання для самостійної роботи:
- •Лабораторна робота №7
- •Лабораторна робота №8
- •Завдання для самостійної роботи
- •Список використаної літератури
Лабораторна робота №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. Відеоплеєр