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

Реалізація мультимедійних технологій. Відтворення відеокліпів

Компонент TMediaPlayer, як багатофункціональний пристрій, який розрізняє кілька видів мультимедійної інформації. Відеоролики - файли з розширенням *. avi - можна включити в додаток, використовуючи медіаплейер. Але перш ніж його задіяти, програміст повинен вказати файл програвання. За його розширення MediaPlayer визначить, з яким саме пристроєм слід працювати і візьме на себе управління. Властивість компонента DeviceType у значенні dtAutoSelect (за замовчуванням) автоматично розпізнає тип необхідного пристрою.Відеофайли можна підготувати в середовищі Macromedia Flash. Для цього створений ролик (*. fla) зберігають в перетворенні AVI за командою File / Export Movie .... Після введення імені та натисканні кнопки «зберегти» Середа Flash переходить до другого діалогового вікна «Export Windows AVI». У ньому Ви встановлюєте (1) розмір вікна виводу, кольорової (2) та звуковий (3) формат відеозапису, а також можете при необхідності вказати метод стиснення відеофайлу (4).

Приклад програми «Персональний комп'ютер»

Додаток містить комбінований список відеофайлів, одна з яких. користувач вибирає для програвання. Управлінням процесом відтворення здійснює медіаплейер (7 кнопок). Зображення виводиться або в окреме вікно, або на панель форми.Спосіб виведення задається в радіогрупи програми.

Лістинг програми unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, ExtCtrls, StdCtrls; type TForm1 = class (TForm) MediaPlayer1: TMediaPlayer; Panel1: TPanel; ComboBox1: TComboBox; RadioGroup1: TRadioGroup; procedure ComboBox1Change (Sender: TObject); private      (Private declarations) public (Public declarations)    end; var Form1: TForm1; implementation uses Unit2; ($ R *. dfm) // Вибір одного елемента зі списку ComboBox1 (клік миші по рядку списку) procedure TForm1.ComboBox1Change (Sender: TObject); begin // Налаштовуємо медіаплейер на файл *. avi             MediaPlayer1.FileName: = 'history.avi'; MediaPlayer1.Open; // відкриваємо пристрій MediaPlayer1.Stop; // зупиняємо попередній запис (при її наявності) MediaPlayer1.Close; // закриваємо програвач case ComboBox1.ItemIndex of // вибираємо файл для програвання       0: MediaPlayer1.FileName: = 'history.avi';       1: MediaPlayer1.FileName: = 'mb.avi';       2: MediaPlayer1.FileName: = 'monitor.avi';       3: MediaPlayer1.FileName: = 'mouse.avi';       4: MediaPlayer1.FileName: = 's_blk.avi';       5: MediaPlayer1.FileName: = 'hdd.avi';       6: MediaPlayer1.FileName: = 'cdrom.avi';       7: MediaPlayer1.FileName: = 'cd.avi';      end;   if Radiogroup1.ItemIndex = 0 then MediaPlayer1.Display: = Panel1 // Задаємо вікно виводу else MediaPlayer1.Display: = nil;

MediaPlayer1.Open;

MediaPlayer1.Play; // запуск відеоролика      end; end.

Стандартні класи Delphi для використання графічних засобів. Графічні засоби в Delphi зібрані в наступних класах: Canvas, Font, Pen та Brush. Їх властивості і методи дозволяють малювати на поверхні компонентів, але тільки на тих, які запрограмовані на їх виклик, тобто здатні бути контейнерами малюнків. Наприклад, за допомогою Canvas можна малювати лише на наступних об'єктах: Form Label • Image • PaintBox (вкладка System Палітри компонентів) • Printer

Клас Canvas - малювання графічних примітивів Властивість Canvas є при виконанні програми, що дозволяє програмісту вводити динаміку: здійснювати анімацію (змінювати розмір, форму, положення, колір і т.д.). Потреби При малюнки можна зберігати в графічному файлі або виводити на друк.Методи малювання

• Pixels [x, y] - колір пікселя в точці з координатами (x, y)

• Ellips (x1, y1, x2, y2) - еліпс із заповненням

  • Arc(x1,y1,x2,y2,x3,y3,x4,y4) – дуга еліпса

  • Chord(x1,y1,x2,y2,x3,y3,x4,y4) – дуга еліпса (по методу Arc) і хорда

Rectangle (x1, y1, x2, y2) - прямокутник із заповненням

• LineTo (x, y) - лінія від поточного положення до точки з координатами x, y

• MoveTo (x, y) - переміщує перо в нову позицію без промальовування

• Refresh - очищення поверхні форми

Промальовування графічних примітивів здійснюється програмно в коді процедур, задіяних з метою виконання завдання програми, окрім процедури FormCreate.

(!) Малювання за допомогою методів класу TCanvas в procedure FormCreate не здійснюється, тому що в процесі створення форми (OnCreate) зв'язок об'єкта з Windows на виконання команд / запитів ще не встановлена.Виконання графіки на формі проводиться або в спеціальній процедурі Events / OnPaint (об'єкт Form), або в інших обробника подій об'єктів форми..

Приклад // При натисканні кнопки на формі з'являються у випадковому розкиді 40 точок procedure TForm1.Button1Click (Sender: TObject);

var

n, x, y: integer;

begin     

Randomize; // процедура ініціалізації генератора випадкових чисел

for n: = 1 to 40 do

        begin           

x: = Random (Form1.ClientWidth);           

y: = Random (Form1.ClientHeight);

           Canvas.Pixels [x, y]: = clWhite; // малюємо точку білого кольору    

end; end;

Клас Pen – перо. Об'єкт перо служить для креслення ліній різного типу: лінія, еліпс, багатокутник та ін.

Стиль лінії. Властивість Style. В

– psSolid

– psDot

– psDash

– psDashDot

– psDashDotDot

– psClear

– psInsideFrame

ластивість
Style визначає стиль ліній:

Ширина лінії. Властивість Width. Властивість Width - товщина лінії у пікселях екрану.

Приклад Для креслення ліній, представлених на малюнку, використовувався наступний код програми:

with PaintBox2.Canvas do        

begin            

. . .            

Pen.Style: = psSolid;           

MoveTo (20,20);            LineTo (220,20);

Width: = 4; 

MoveTo (20,40); LineTo (220,40);           

Pen.Color: = clBlue;  Pen.Width: = 1;           

Pen.Style: = psDot;           

MoveTo (250,20);     LineTo (450,20);           

Pen.Width: = 1; Pen.Style: = psDash;           

MoveTo (250,40);     LineTo (450,40);       

end;

Клас TBrush - пензель (заливка) Об'єкт кисть служить для заповнення (заливки) простору області.

Растрове зображення кисті. Властивість Bitmap Властивість Bitmap містить растрове зображення кисті. При його підключенні властивості Style і Color компонента ігноруються. Для підключення растрового параметра вводяться в код програми змінні растру.

. . .

procedure TForm1.FormPaint(Sender: TObject);

var rs : TBitmap; // переменная для хранения образа растра кисти

begin

rs:=TBitmap.Create; // связь с файловой переменной загрузка в нее растра выбранного rs.LoadFromFile('rs.bmp'); изображения:

with PaintBox1.Canvas do

begin

Brush.Bitmap:=rs;

Ellipse(20,20,80,80);

end;end;

Стиль кисті. Властивість Style

В ластивість Style визначає стиль кисті (заливка):

Код програми-ілюстрації:

procedure TForm1.FormPaint (Sender: TObject);

begin

with Form1.Canvas do

begin

          Color: = ClWhite;

          Brush.Style: = bsClear;

          TextOut (10,20, 'bsSolid -');

          Brush.Style: = bsSolid;

          Brush.Color: = clBlack;

          Rectangle (80,10,130,40);

          Brush.Style: = bsClear;

          TextOut (150,170, 'bsVertical -');

          Brush.Style: = bsVertical;

          Brush.Color: = clBlack;

          Rectangle (220,160,270,190);

end; end;