Написання простого медіа-програвача (частина 1) - статті

Найпростіший медіа-програвач можна створити стандартними засобами Windows. Існують модулі, які доступні з будь-якої мови програмування - це ActiveX. Delphi в цьому плані не виняток. Вбудований в систему Windows Media Player має власний ActiveX-модуль, який ми легко можемо використовувати в своїй програмі. Правда, кардинально змінити в ньому що-небудь не вийде. У даній статті я покажу приклад, як використовувати цей компонент.

Для початку ActiveX -компонент (скорочено AX) потрібно інтегрувати в оболочкуDelphi. Робиться це легко: відкриваємо діалогове вікно Component - Import ActiveX Control. У різних версіях Delphi цей пункт меню може називатися по-різному, але ключовим залишається слово ActiveX. У вікні, в списку компонент знайдіть рядок Windows Media Player. Натисніть кнопку Install. У вікні можна вказати, в який пакет слід встановити компонент. Можна залишити все за умовчанням і натиснути ОК. Після цього на вкладці ActiveX палітри компонент з'явиться кнопка WindowsMediaPlayer. Тепер можна приступити до створення програвача.

Для початку помістіть компонент на форму - клацніть по його значку і потім по формі. Ви побачите знайоме зображення - зображення програвача. Його зовнішній вигляд залежить від версії встановленого в системі компонента. Зразковий вид того, що ви побачите, зображений на малюнку 1.

Для початку давайте зробимо можливість відкриття потрібного файлу. За шлях до файлу, який потрібно відтворювати, відповідає властивість URL типу WideString (рядок). Давайте зробимо для програми меню, куди і додамо потрібний нам пункт. Помістіть на форму TMainMenu (сторінка Standard). Двічі клацніть по значку TMainMenu. який лежить на формі. Відкриється дизайнер меню. Виділіть єдиний пункт в заголовку меню і в його властивості Caption напишіть "Файл". Потім клацніть по створеному пункту і знизу з'явиться ще один порожній рядок. Там і введіть назву нашого пункту - "Відкрити". Наступним рядком давайте створимо роздільник для меню - у властивості Caption поставте один-єдиний символ - мінус ( "-"). Наступним рядком зробіть пункт "Вихід". Ну ось, програма вже має меню, хоча і невелике. Тепер потрібно зв'язати пункт меню з діалогом відкриття файлу. Знайдіть компонент TOpenDialog на сторінці Dialogs і помістіть його на форму. Активуйте властивість Filter і натисніть на кнопку з трьома крапками ( "."). У вікні введіть бажані типи файлів. В поле Filter Name потрібно ввести опис типів файлів, а в поле Filter - сам фільтр. Приклад на малюнку 2.

Щоб з компонентом було зручно працювати, змініть його властивість Name на MediaPlayer.

Виділіть компонент і перейдіть у вікно Object Inspector. Властивостей (Properties) у компоненту не дуже багато, а ось подій (Events) набагато більше. Але ми використовуємо лише деякі з них.

Для зручності, компонент MainMenu1 перейменуємо в MainMenu. а OpenDialog1 - в OpenDialog.

Метод Execute відкриває діалог і, якщо користувач не натиснув "Скасування", то функція повертає значення True. а в FileName записується шлях до вибраного файлу. Потім ми присвоюємо властивості URL програвача обраний файл. Запустіть програму і спробуйте відкрити файл. Все повинно працювати, файл повинен відтворюватися.

Тепер давайте наведемо вікно програвача до нормального вигляду. Сам програвач потрібно розтягнути на всю ширину вікна - змініть його властивість Align на alClient. Саму форму варто зробити поменше, тому що наш програвач поки що відтворює тільки аудіо-файли. На мій погляд, для форми можна встановити ширину (Width) дорівнює 300. а висоту (Height) - 200. Нарешті, можна змінити вид вікна і встановити BorderStyle в значення bsSizeToolWin. а заголовок (Caption) - "Simple Media Player".

Тепер запрограмуємо пункт "Вихід" - для цього слід написати в його обробнику всього один рядок:

Цей метод закриває поточну форму (Self - об'єкт, обраний за замовчуванням, форма) і завершує додаток.

Тепер потрібно зробити в меню елементарні команди управління відтворенням - Start. Stop. Pause. Звичайно, в програвачі та без того є існуючі кнопки, але вони повинні мати своє відображення і в меню.

Для початку додайте в заголовну рядок меню (туди, де "Файл") пункт "Управління". Потім додайте два пункти - "Старт / Стоп" і "Пауза". Запрограмувати ці команди легко. Для управління відтворенням служить набір методів Controls. а дізнатися про стан програвача можна з властивості PlayState. Ось як виглядає обробник пункту "Старт / Стоп":

А ось обробник "Паузи":

Запустіть програму і перевірте її працездатність.

Як бачите, ми створили порівняно простий, але робочий програвач. Наступного разу ми продовжимо його розробку. Зразкове зображення вікна програми після виконання всіх дій, описаних в статті, показано на малюнку.

я перший раз пробую зробити щось подібне і у мене неполучілось хоча зовнішній вигляд як на зображенні а ось з кодом чет нетак скажіть що unit Unit1;

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtDlgs, OleCtrls, WMPLib_TLB;

type
TForm1 = class (TForm)
WindowsMediaPlayer: TWindowsMediaPlayer;
MainMenu: TMainMenu;
OpenPictureDialog: TOpenPictureDialog;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Eghfdktybt1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
procedure N2Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure N6Click (Sender: TObject);
procedure N7Click (Sender: TObject);
private

public

end;

var
Form1: TForm1;

procedure TForm1.N2Click (Sender: TObject);
begin
if OpenDialog.Execute then
MediaPlayer.URL: = OpenDialog.FileName;
end;

procedure TForm1.N4Click (Sender: TObject);
begin
Self.Close;
end;

procedure TForm1.N5Click (Sender: TObject);
begin
IF
MediaPlayer.PlayState = wmppsPlaying Then
MediaPlayer.Controls.Stop
Else
MediaPlayer.Controls.Play;
end;

procedure TForm1.N6Click (Sender: TObject);
begin
IF
MediaPlayer.PlayState = wmppsPlaying Then
MediaPlayer.Controls.Stop
Else
MediaPlayer.Controls.Play;
end;

procedure TForm1.N7Click (Sender: TObject);
begin
IF
MediaPlayer.Playstate = wmppsPlaying Then
MediaPlayer.Controls.Pause;
end;