Урок 11: Средства создания мультимедийных приложений

  1. Обзор
  2. Delphi позволяет легко
    и просто включать в программу такие мультимедийные объекты, как звуки,
    видео и музыку. В данном уроке обсуждается,
    как это сделать, используя встроенный в Delphi компонент
    TMediaPlayer. Подробно рассматриваются
    управление этим компонентом в программе и получение информации о текущем
    состоянии.

  3. Что такое мультимедиа
  4. Точного определения,
    что же это такое, нет. Но в данный момент и в данном месте, наверное, лучше
    дать по-возможности наиболее общее определение и сказать, что “мультимедиа”
    - это термин относящийся к почти всем формам анимации, звукам, видео, которые
    используются на компьютере.

    Давая такое общее определение,
    нужно сказать, что в данном уроке мы имеем дело с подмножеством мультимедиа,
    которое включает:

    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.

  5. Мультимедиа в Delphi
  6. В Delphi есть
    компонент TMediaPlayer, который дает
    Вам доступ ко всем основным возможностям программирования мультимедиа.
    Данный компонент очень прост в использовании.
    Фактически, он настолько прост, что многим
    начинающим программистам будет проще создать свою первую программу, проигрывающую
    видео или музыку, нежели показывающую классическую надпись “Hello
    World”.

    Простоту использования можно
    воспринимать двояко:

    · С
    одной стороны – это дает возможность любому создавать мультимедиа приложения.

    · С
    другой стороны, можно обнаружить, что в компоненте реализованы не все возможности.
    Если Вы захотите использовать низкоуровневые
    функции, то придется копаться достаточно глубоко, используя язык Delphi.

    В данном уроке не описываются
    подробности внутренних вызовов мультимедийных функций при работе компонента.
    Все что нужно знать – это то, что компонент
    называется TMediaPlayer, и что он дает
    доступ к набору подпрограмм, созданных Microsoft и
    называемых Media Control Interface (MCI). Эти
    подпрограммы дают программисту простой доступ к широкому кругу устройств
    мультимедиа. Собственно работа с TMediaPlayer
    интуитивно понятна и очевидна.

  7. Компонент TMediaPlayer

Для начала давайте создадим
новый проект, затем поместим компонент
TMediaPlayer (стр. System Палитры)
на форму, как показано на рис.1.

Рис.1: Компонент TMediaPlayer на форме.

Компонент TMediaPlayer оформлен,
как панель управления устройством с кнопками. Как и на магнитофоне, здесь
есть кнопки “воспроизведение”, “перемотка”, “запись” и др.

Поместив компонент на форму,
Вы увидите, что Инспектор Объектов содержит свойство “FileName”
(см. рис.2). Щелкните дважды

Рис.2:
Свойства TMediaPlayer в Инспекторе Объектов

на этом свойстве и выберите имя файла с расширением AVI,
WAV или

MID. На рис.2 выбран AVI
файл DELPHI.AVI.
Далее нужно установить свойство AutoOpen
в True.

После выполнения этих шагов
программа готова к запуску. Запустив программу, нажмите зеленую кнопку
“воспроизведение” (крайняя слева) и Вы увидите видеоролик (если выбрали
AVI) или услышите звук (если выбрали
WAV или MID). Если
этого не произошло или появилось сообщение об ошибке, то возможны два варианта:

  1. Вы ввели неправильное имя файла.
  2. Вы не настроили правильным образом
    мультимедиа в Windows. Это означает,
    что либо у Вас нет соответствующего ”железа”, либо не установлены нужные
    драйверы. Установка и настройка драйверов
    производится в Control Panel, требования
    к “железу” приводятся в любой книге по мультимедиа (нужна звуковая карта,
    например совместимая с Sound
    Blaster).

Итак, Вы имеете возможность
проигрывать AVI, MIDI и WAVE
файлы просто указывая имя файла.

Еще одно важное свойство
компонента TMediaPlayer – Display.
Изначально оно не заполнено и видео воспроизводится в отдельном окошке.
Однако, в качестве экрана для показа ролика можно использовать, например,
панель. На форму нужно поместить компонент TPanel,
убрать текст из св-ва Caption. Далее,
для TMediaPlayer, в свойстве Display
выбрать из списка Panel1.
После этого надо запустить программу и нажать кнопку “воспроизведение”
(см. рис.3)

Рис.3: Воспроизведение AVI на панели.

  1. Два вида программ мультимедиа
  2. · Иногда
    приходится предоставлять пользователям простой путь для проигрывания максимально
    широкого круга файлов. Это означает,
    что Вам нужно будет дать пользователю доступ к жесткому диску или CD-ROM,
    и затем позволить ему выбрать и воспроизвести
    подходящий файл. В этом случае, на форме обычно располагается TMediaPlayer,
    предоставляющий возможность управления воспроизведением.

    · Иногда
    программист может захотеть скрыть от пользователя существование компонента
    TMediaPlayer. То есть, воспроизвести
    звук или видео без того, чтобы пользователь заботился об их источнике.
    В частности, звук может быть частью презентации.
    Например, показ какого-нибудь графика на экране
    может сопровождаться объяснением, записанным в WAV файл.
    В течении презентации пользователь даже не
    знает о существовании TMediaPlayer. Он
    работает в фоновом режиме. Для этого компонент делается невидимым (Visible
    = False) и управляется программно.

  3. Пример программы с мультимедиа

В данной главе мы рассмотрим
пример построения приложения с мультимедиа первого типа. Создайте новый
проект (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 файлов.

Tags: , , , , ,

Дата создания: Воскресенье, июня 8, 2008 - 12:11 и находится в категории Уроки Delphi. Вы можете отслеживать ответы через RSS 2.0. Вы можете ответить.

Ответить

Вы должны быть в системе для комментирования.