Реферат: Средства создания мультимедийных приложений
Средства создания мультимедийных приложений
Содержание
Обзор
Что такое мультимедиа
Мультимедиа в 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 файлов.
|