Зміст
Огляд
Що таке мультимедіа
Мультимедіа в Delphi
Компонент TMediaPlayer
Два види програм, що використовують мультимедіа
Приклад програми з мультимедіа
Огляд
Delphi дозволяє легко і просто включати в програму такі мультимедійні об'єкти, як звуки, відео і музику. У даному уроці обговорюється, як це зробити, використовуючи вбудований в Delphi компонент TMediaPlayer. Докладно розглядаються управління цим компонентом у програмі і отримання інформації про поточний стан. Що таке мультимедіа Точного визначення, що ж це таке, немає. Але в даний момент і в даному місці, напевно, краще дати по-можливості найбільш загальне визначення і сказати, що "мультимедіа" - це термін відноситься до майже всім формам анімації, звуків, відео, які використовуються на комп'ютері.Даючи таке загальне визначення, потрібно сказати, що в даному уроці ми маємо справу з підмножиною мультимедіа, яке включає:
1. Показ відео в форматі Microsoft's Video for Windows (AVI).
2. Відтворення звуків і музики з MIDI і WAVE файлів.
Дану задачу можна виконати за допомогою динамічної бібліотеки Microsoft Multimedia Extensions для Windows (MMSYSTEM.DLL), методи якої інкапсульовані в компоненті TMediaPlay, що знаходиться на сторінці System Палітри Компонент Delphi.
Для програвання мультимедійних файлів може знадобитися наявність деякого обладнання та програмного забезпечення. Так для відтворення звуків потрібна звукова карта. Для відтворення AVI в Windows 3.1 (або WFW) потрібно встановити ПО Microsoft Video.
Мультимедіа в Delphi У Delphi є компонент TMediaPlayer, який дає Вам доступ до всіх основних можливостей програмування мультимедіа. Даний компонент дуже простий у використанні. Фактично, він настільки простий, що багатьом починаючим програмістам буде простіше створити свою першу програму, що програє відео або музику, ніж показує класичну напис "Hello World".Простоту використання можна сприймати двояко:
· З одного боку - це дає можливість будь-якому створювати мультимедіа програми.
· З іншого боку, можна виявити, що в компоненті реалізовані не всі можливості. Якщо Ви захочете використовувати низькорівневі функції, то доведеться копатися досить глибоко, використовуючи мову Delphi.
У даному уроці не описуються подробиці внутрішніх викликів мультимедійних функцій при роботі компонента. Все що потрібно знати - це те, що компонент називається TMediaPlayer, і що він дає доступ до набору підпрограм, створених Microsoft і званих Media Control Interface (MCI). Ці підпрограми дають програмісту простий доступ до широкого кола пристроїв мультимедіа. Власне робота з TMediaPlayer інтуїтивно зрозуміла й очевидна.
Компонент TMediaPlayerДля початку давайте створимо новий проект, потім помістимо компонент TMediaPlayer (стор. System Палітри) на форму, як показано на рис.1.
Рис.1: Компонент TMediaPlayer на формі.
Компонент TMediaPlayer оформлений, як панель управління пристроєм з кнопками. Як і на магнітофоні, тут є кнопки "відтворення", "перемотування", "запис" та ін
Помістивши компонент на форму, Ви побачите, що Інспектор Об'єктів містить властивість "FileName" (див. рис.2). Клацніть двічі
Рис.2: Властивості TMediaPlayer в Інспектора Об'єктів
на цю властивість і виберіть ім'я файлу з розширенням AVI, WAV або
MID. На рис.2 обраний AVI файл DELPHI.AVI. Далі потрібно встановити властивість AutoOpen в True.
Після виконання цих кроків програма готова до запуску. Запустивши програму, натисніть зелену кнопку "відтворення" (крайня зліва) і Ви побачите відеоролик (якщо вибрали AVI) або почуєте звук (якщо вибрали WAV або MID). Якщо цього не відбулося або з'явилося повідомлення про помилку, то можливі два варіанти:
Ви ввели неправильне ім'я файлу. Ви не налаштували правильним чином мультимедіа в Windows. Це означає, що або у Вас немає відповідного "заліза", або не встановлені потрібні драйвери. Встановлення та налаштування драйверів виробляється в Control Panel, вимоги до "заліза" наводяться в будь-якій книзі з мультимедіа (потрібна звукова карта, наприклад сумісна з Sound Blaster).Отже, Ви маєте можливість програвати AVI, MIDI і WAVE файли просто вказуючи ім'я файлу.
Ще одна важлива властивість компонента TMediaPlayer - Display. Спочатку воно не заповнено і відео відтворюється в окремому віконці. Однак, як екран для показу ролика можна використовувати, наприклад, панель. На форму потрібно помістити компонент TPanel, прибрати текст із св-ва Caption. Далі, для TMediaPlayer, у властивості Display вибрати зі списку Panel1. Після цього треба запустити програму і натиснути кнопку "відтворення" (див. рис.3)
Рис.3: Відтворення AVI на панелі.
Два види програм мультимедіа · Іноді доводиться надавати користувачам простий шлях для програвання максимально широкого кола файлів. Це означає, що Вам потрібно буде дати користувачеві доступ до жорсткого диска або CD-ROM, і потім дозволити йому вибрати і відтворити відповідний файл. У цьому випадку, на формі зазвичай розташовується TMediaPlayer, що надає можливість управління відтворенням.· Іноді програміст може захотіти приховати від користувача існування компонента TMediaPlayer. Тобто, відтворити звук або відео без того, щоб користувач піклувався про їх джерело. Зокрема, звук може бути частиною презентації. Наприклад, показ якого-небудь графіка на екрані може супроводжуватися поясненням, записаним в WAV файл. Протягом презентації користувач навіть не знає про існування TMediaPlayer. Він працює у фоновому режимі. Для цього компонент робиться невидимим (Visible = False) і управляється програмно.
Приклад програми з мультимедіаУ цьому розділі ми розглянемо приклад побудови програми з мультимедіа першого типу. Створіть новий проект (File | New Project). Помістіть TMediaPlayer на форму; помістіть компоненти TFileListBox, TDirectoryListBox, TDriveComboBox, TFilterComboBox для вибору файлу. У властивості FileList для DirectoryListBox1 і FilterComboBox1 поставте FileListBox1. У св-ве DirList для DriveComboBox1 поставте DirectoryListBox1. У св-ве Filter для FilterComboBox1 вкажіть необхідні розширення файлів:
AVI File (*. avi) | *. avi
WAVE File (*. wav) | *. wav
MIDI file (*. MID) | *. mid
Нехай за подвійним клацанням мишкою в FileListBox1 вибраний файл буде відтворюватися. У обробнику події OnDblClick для FileListBox1 вкажіть
Procedure TForm1.FileListBox1DblClick (Sender: TObject);
begin
with MediaPlayer1 do
begin
Close;
FileName: = FileListBox1.FileName;
Open;
Play;
end;
end;
Зовнішній вигляд форми представлений на рис.4
Рис.4: Початковий вигляд проекту
Збережіть проект, запустіть його, виберіть потрібний файл і двічі клацніть на нього мишкою. MediaPlayer повинен відтворити цей файл в окремому вікні.
Як вже говорилося вище, відеоролик можна відтворювати всередині форми, наприклад, на панелі. Давайте злегка модифікуємо проект і додамо туди панель TPanel (див. рис.5). У св-ве Display для MediaPlayer1 вкажіть Panel1. Потрібно прибрати напис з панелі (Caption)
і св-во BevelOuter = bvNone. Щоб перемикатися при відтворенні з вікна на панель - помістіть TСheckBox на форму і в обробнику події OnClick для нього запишіть:
procedure TForm1.CheckBox1Click (Sender: TObject);
var
Start_From: Longint;
begin
with MediaPlayer1 do begin
if FileName =''then Exit;
Start_From: = Position;
Close;
Panel1.Refresh;
if CheckBox1.Checked then
Display: = Panel1
else
Display: = NIL;
Open;
Position: = Start_From;
Play;
end;
end;
Запустіть проект і відтворіть відеоролик. Поклацайте мишкою на CheckBox.
· · Рис.5: Додана панель для відтворення відео і перемикач вікно / панель.
Під час виконання програми може знадобитися відобразити поточний стан об'єкта MediaPlayer і самого ролика (час, що минув з початку відтворення, довжину ролика). Для цього в об'єкта TMediaPlayer є відповідні властивості та події: Length, Position, OnNotify та ін Давайте додамо в проект прогрес-індикатор (TGauge), який відобразить у відсотках, скільки минуло часу (див. рис.6). Для оновлення показань індикатора можна скористатися таймером. Помістіть на форму об'єкт TTimer, встановіть для нього Interval = 100 (100 мілісекунд). У обробнику події OnTimer потрібно записати:
procedure TForm1.Timer1Timer (Sender: TObject);
begin
with MediaPlayer1 do
if FileName''then
Gauge1.Progress: = Round (100 * Position / Length);
end;
Запустіть проект, виберіть файл (AVI) і клацніть на ньому два рази мишкою. При відтворенні ролика прогрес-індикатор повинен відображати відсоток, відповідний пройшов часу (див. рис.6).
· · Рис.6: Закінчене додаток для відтворення AVI, WAV і MDI файлів.