Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vvod_lek2_pr_media.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
155.65 Кб
Скачать

Свойства панелей, отвечающих в медиа-плеере за навигацию

Свойство

Для какой панели

Пояснение

Play

Pause

Back

Forward

Stop

Caption

Воспроизведение

Пауза

Назад

Вперед

Остановить

Надпись на панели

Left

4

119

174

229

284

Top

78

78

78

78

78

Height

25

25

25

25

25

Высота

Width

117

57

57

57

78

Ширина

BevelInner

bvRaised

Внутренний край границы — приподнятый

BevelOuter

bvLowered

Внешний край границы — утопленный

    1. Теперь разместим на форме важные компоненты, которые для пользователя будут невидны. Прежде всего, это — компонент Timer со вкладки System палитры компонентов .

Свойству Timer1. Enabled ("доступный") присвоим значение False ("нет"), а свойству Interval — значение 100 (обработка события OnTimer через каждые 100 миллисекунд).

    1. Разместим на форме компонент OpenDialog со вкладки Dialogs .

Имя компонента OpenDialog свойство Name изменим на Open1, а свойству Filter ("фильтр") присвоим значение Все файлы | *.* (это означает, что при вызове диалогового окна выбора файла будут отображены все файлы). При желании, можно свойству Open1. FileName присвоить имя того медиа-файла, который должен выбираться по умолчанию.

    1. Теперь разместим на форме самый важный компонент нашей программы — MediaPlayer со вкладки System . Сразу же будет предложена панель, на которой размещены все кнопки, выполняющие функции плеера.

Фактически, в нашем плеере функции кнопок назначаются панелям Play, Pause, Back, Forward и Stop, поэтому свойству MediaPlayer1.Visible можно присвоить значение False— это означает, что стандартные кнопки компонента MediaPlayer во время выполнения программы будут скрыты.

  1. События панелей навигации

    1. Обработаем событие щелчка мышью на каждой из панелей (событие OnClick). Для Play обработчик этого события выглядит следующим образом:

procedure TForml.PlayClick(Sender: TObject);

begin

//связываем плеер с файлом

MediaPlayer1.FileName := Edit1.text;

//инициализируем устройство

MediaPlayer1.Open;

//воспроизводим

MediaPlayer1.Play;

//устанавливаем границы прокрутки

Scroll.Max := MediaPlayer1.TrackLength[1];

//активизируем таймер

Timer1.Enabled := True;

end;

    1. Для панели Pause обработчик события OnClick содержит всего лишь одну строку

procedure TForml.PauseClick(Sender: TObject);

begin

MediaPlayer1.Pause;

end;

    1. Для панели Back:

procedure TForml.BackClick(Sender: TObject);

begin

//переводим на 100 кадров назад

MediaPlayer1.Position := MediaPlayer1.Position - 10000;

//и продолжаем воспроизведение

MediaPlayerl.Play;

end;

    1. Для прокрутки вперед — все то же самое, но 100 не отнимается, прибавляется

procedure TForml.ForwardClick(Sender: TObject);

begin

//переводим на 100 кадров вперед

MediaPlayer1.Position := MediaPlayer1.Position + 10000;

//и продолжаем воспроизведение

MediaPlayer1.Play

end;

    1. событие OnClick кнопки Stop

procedure TForml.StopClick(Sender: TObject);

begin

//останавливаем

MediaPlayer1.Stop;

//и делаем первый кадр текущим

MediaPlayer1.Position := 1;

end;

    1. Теперь обработаем событие щелчка мышью для каждой из панелей навигации: Play, Pause, Back, Forward и Stop, чтобы они могли срабатывать как кнопки. Для этого необходимо создать обработчик события OnMouseDown, которое возникает в момент нажатия над панелью кнопки мыши (именно этого события, а не Onclick, поскольку нам потребуется отслеживать и момент отпускания кнопки мыши). Двойной щелчок в поле выбора процедуры обработчика события OnMouseDown дает возможность написать текст программы, данный ниже.

      1. Эти процедуры вставляем в программу перед процедурой Onclick для каждой клавиши и не забываем включить их заголовки (без слова TForm1)в разделе interface.

procedure TForm1. PlayMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

Play.BevelInner := bvLowered;

end;

      1. Теперь создадим для этой панели обработчик событие для ОnMouseUp, которое возникает при отпускании кнопки мыши

procedure TForm1.PlayMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

Play.BevelInner := bvRaised;

end;

      1. Другими словами, эффект нажатия кнопки создается путем изменения характера внешнего и внутреннего края границы панели. Создадим аналогичные обработчики для всех остальных панелей навигации, не забывая вместо имени Play указать соответствующее имя.

    1. Создадим обработчик события OnTimer компонента Timer

procedure TForml.Timer1Timer(Sender: TObject);

begin

Scrol1.Position := MediaPlayer1.Position;

end;

Здесь мы просто перемещаем бегунок компонента ТгаскВаг в соответствии с позицией в воспроизводимом файле.

    1. Теперь создадим обработчик событая OnClilck кнопки Обзор

procedure TForml.ButtonlClick(Sender: TObject);

begin

if not Open1.Execute

then ShowMessage('Файл не выбран!')

else Edit1.Text := Open1.FileName;

end;

В первой строке выполняется проверка, выбрал ли пользователь какой-либо файл или нажал кнопку Отмена. Если файл не выбран, то отображается соответствующее окно сообщения (процедура ShowMessage), в противном случае определяем полный путь к выбранному файлу (свойство FileName) и записываем его в поле Editl.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]