Тема: Использование компонента мультимедийных возможностей Delphi
Цель лабораторной работы – Познакомиться с мультимедийными возможностями Delphi .
Студенты должны научиться:
- Применять мультимедийные компоненты
- Разрабатывать приложения с мультимедийными компонентами.
Теоретическая часть
В Delphi есть компонент TMediaPlayer, который дает Вам доступ ко всем основным возможностям программирования мультимедиа. Данный компонент очень прост в использовании.
Кнопки компонента MediaPlayer
Кнопка | Обозначение | Действие |
Воспроизведение | btPlay | Воспроизведение звука или видео |
Пауза | btPause | Приостановка воспроизведения |
Стоп | btStop | Остановка воспроизведения |
Следующий | btNext | Переход к следующему кадру |
Предыдущий | btPrev | Переход к предыдущему кадру |
Шаг | btStep | Переход к следующему звуковому фрагменту, например, к следующей песне на CD |
Назад | btBack | Переход к предыдущему звуковому фрагменту, например, к предыдущей песне на CD |
Запись | btRecord | Запись |
Открыть/Закрыть | btEject | Открытие или закрытие CD-дисковода компьютера |
Свойства компонента MediaPiayer
Свойство | Описание |
Name | Имя компонента. |
DeviceType | Тип устройства. Определяет конкретное устройство, которое представляет собой компонент MediaPiayer. Тип устройства задается именованной константой: dtAutoSelect — тип устройства определяется автоматически; dtVaweAudio — проигрыватель звука; dtAVivideo — видеопроигрыватель; dtCDAudio — CD-проигрыватель |
FileName | Имя файла, в котором находится воспроизводимый звуковой фрагмент или видеоролик |
AutoOpen | Признак автоматического открытия сразу после запуска программы, файла видеоролика или звукового фрагмента |
Display | Определяет компонент, на поверхности которого воспроизводится видеоролик (обычно в качестве экрана для отображения видео используют компонент Panel) |
VisibleButtons | Составное свойство. Определяет видимые кнопки компонента. Позволяет сделать невидимыми некоторые кнопки |
Компонент Animate добавляется к форме обычным образом. После добавления компонента к форме следует установить значения его свойств. Свойства компонента Animate перечислены в таблице.
Свойства компонента Animate.
Свойство | Определяет |
Name | Имя компонента. Используется для доступа к свойствам компонента и управлением его поведением |
FileName | Имя AVI-файла в котором находится анимация, отображаемая при помощи компонента |
StartFrame | Номер кадра, с которого начинается отображение анимации |
stopFrame | Номер кадра, на котором заканчивается отображение анимации |
Activate | Признак активизации процесса отображения кадров анимации |
Color | Цвет фона компонента (цвет “экрана”), на котором воспроизводится анимация |
Transparent | Режим использования “прозрачного” цвета при отображении анимации |
Repetitions | Количество повторов отображения анимации |
Следует еще раз обратить внимание, что компонент Animate предназначен для воспроизведения AVI-файлов, которые содержат только анимацию. При попытке присвоить записать в свойство FileName имя файла, который содержит звук, Delphi выводит сообщение о невозможности открытия указанного файла (Cannot open AVI).
Задание 1
- Создать приложение проигрывания анимации.
- На форме поместить компоненты Panel, MediaPlayer, Button, Label.
- Подписать компоненты согласно изображению.
- Установите значение Visible в false у компонента MediaPlayer, а также выбрать компонент для отображения: в свойстве Display выбрать Panel.
- В событии OnCreate формы прописать
MediaPlayer1.DisplayRect:=Rect(0,0,60,60);
Пояснение к 1-5: задается размер области вывода анимации, при создании проекта, т.е. анимация будет проиграна в компоненте с координатами от (0,0 до 60,60).
- Выбрать файл видеоролика в MediaPlayer в свойстве FileName.
- Для просмотра прописать следующее событие:
MediaPlayer1.Play; // воспроизведение анимации
- Самостоятельно добавить и прописать кнопки стоп, следующее видео, предыдущее видео.
Задание 2
- Создать приложение проигрывающее анимацию. Форму расширить, и разместить на ней: label, edit, button, animate, opendialog, groupbox, radiobutton, speedbutton. Разместить и подписать согласно изображения.
:
- Объявите процедуру в разделе объявления, добавив строку:
procedure OpenAVI;
А также в разделе var укажите: CFrame: integer;
- Описать процедуру после {$R *.DFM}. Нужно написать следующий код:
procedure TForm1.OpenAVI;
begin
Button3.Enabled := False;
SpeedButton2.Enabled := False;
SpeedButton1.Enabled := False;
RadioButton1.Enabled := False;
RadioButton2.Enabled := False;
try
Animate1.FileName := Edit1.Text;
except
on Exception do
begin
MessageDlg(‘Ошибка формата AVI файла.’+
#13+'(Анимация не должна сопровождаться звуком.)’,
mtError,[mbOk],0);
exit;
end;
end;
Button3.Enabled := True;
//Button2.Enabled := True;
//Button3.Enabled := True;
RadioButton1.Enabled := True;
RadioButton2.Enabled := True;
end;
- Необходимо настроить фильтр OpenDialog: AVI файл |*.avi.
- У компонента Edit в событии OnKeyPress прописать код:
if (Key = #13) and (Length(Edit1.Text) <> 0) then OpenAVI;
Пояснение: Проверяется наличие условия на нажатие клавиши Enter и длины текста больше 0 символов. Если условие совпадает, то выполняется процедура OpenAvi.
- Функция выбора видео записывается на нажатие на кнопку Выбрать:
OpenDialog1.Title := ‘Выбрать AVI файл‘;
if OpenDialog1.Execute then
begin
Edit1.Text := OpenDialog1.FileName;
OpenAVI;
end;
- Для запуска анимации, на кнопку Пуск, прописать следующий код:
if Animate1.Active = False // в данный момент анимация не выводиться
then begin
Animate1.StartFrame:=1; // вывод с первого кадра
Animate1.StopFrame:=Animate1.FrameCount; // по последний кадр
Animate1.Active:=True;
Button3.caption:=’Стоп‘;
RadioButton2.Enabled:=False;
end
else // анимация отображается
begin
Animate1.Active:=False; // остановить отображение
Button3.caption:=’Пуск‘;
RadioButton2.Enabled:=True;
end;
- Для кнопки Не прерывно прописать код:
Button3.Enabled:=True;
Form1.SpeedButton1.Enabled:=False;
Form1.SpeedButton2.Enabled:=False;
- Для кнопки По кадрам прописать код:
SpeedButton2.Enabled:=True; // кнопка Следующий кадр доступна
SpeedButton1.Enabled:=False; // кнопка Предыдущий кадр недоступна
// сделать недоступной кнопку Пуск – вывод всей анимации
Button3.Enabled:=False;
Animate1.StartFrame:=1;
Animate1.StartFrame:=1;
CFrame:=1;
- Для кнопки Предыдущий кадр прописать код:
if CFrame > 1 then
begin
CFrame := CFrame – 1;
// вывести кадр
Animate1.StartFrame := CFrame;
Animate1.StopFrame := CFrame;
Animate1.Active := True;
if CFrame = 1 // текущий кадр – первый
then Form1.Button3.Enabled := False;
end;
if CFrame < Animate1.FrameCount
then SpeedButton2.Enabled := True;
- Для кнопки Следующий кадр прописать код:
if CFrame < Animate1.FrameCount then
begin
CFrame := CFrame + 1;
// вывести кадр
Animate1.StartFrame := CFrame;
Animate1.StopFrame := CFrame;
Animate1.Active := True;
if CFrame = Animate1.FrameCount // текущий кадр – последний
then Button3.Enabled:=False;
end;
if CFrame > 1 then SpeedButton1.Enabled := True;
- Сохраните проект, запустите приложение.
Содержание отчета:
- Номер, тема, цель лабораторной работы.
- Задание к работе.
- Описание входных, промежуточных и результирующих данных с указанием их типа.
- Программа на языке программирования.
- Результат выполнения программы (Введенное данные и полученные данные)
- Вставить код, написанный вами
- Вывод о проделанной работе.