Подписаться на RSS рассылку
Главная » Учебник по Delphi для начинающих » Урок 9 - Изучаем компонент TMediaPlayer

Урок 9 - Изучаем компонент TMediaPlayer

Автор: Борисов Сергей

Этот компонент расположен на вкладке System панели инструментов. Он предназначен для воспроизведения аудио и видео файлов. Медиа-плейер может управляться как кнопками, так и непосредственно соответствующими этим кнопкам методами (Play, Pause, Stop, Next, Previous, Step, Back, StartRecording, Eject). В этом случае сам компонент TMediaPlayer может быть сделан невидимым. Т.е. компонент делается невидимым а управление воспроизведением происходит не по нажатию на кнопки самого компонента, а вызывая нужные методы в нужных местах, например можно сделать чтобы по нажатию на кнопку TButton воспроизведение остановилось.

Рассмотрим основные свойства:

AutoEnable - Автоматическое задание доступных и не доступных кнопок в зависимости от режима Mode;

AutoOpen - Определяет автоматический запуск медиа-плейера в момент начала выполнения приложения;

AutoRewind - Автоматическая перемотка. Если AutoRewind установлено в true и текущая позиция соответствует концу, то перед выполнением Play или StartRecording производится перемещение текущей позиции в начало перед воспроизведением или записью.  При AutoRewind установленном в false, перемотка должна осуществляться пользователем кнопкой Prev или программно методом Previous. Если заданы значения StartPos или EndPos, или если устройство использует треки, свойство AutoRewind не работает;

Display - Определяет окно, используемое для вывода;

DisplayRect - Определяет область отображения в окне, указанном свойством Display;

EnabledButtons - Определяет доступные кнопки;

FileName - Определяет имя файла, открываемого методом Open или сохраняемого методом Save;

Position - Указывает текущую позицию в загруженном объекте в соответствии с форматом TimeFormat. По умолчанию позиция в начале объекта или в начале первого трека;

VisibleButtons - Указывает, какие кнопки медиа-плейера видимы. По умолчанию видимы все кнопки. Кнопки, не перечисленные в множестве VisibleButtons типа TButtonSet, невидимы;

Итак, выложите на форму компонент TMediaPlayer и в свойстве FileName укажите какой-нибудь MP3 файл. Теперь запустите приложение. Как видите ничего не происходит и кнопки компонента неактивны. Почему? Потомучто мы только указали путь к файлу. Его еще нужно открыть. Установите свойство AutoOpen в True. И снова запустите приложение. Теперь кнопки будут активны. При нажатии на кнопку Play начнется воспроизведение.

Как же осуществить выбор файла? Очень просто! Все что нужно - это просто прогрммно изменить свойство FileName. Перед тем, как начинать писать, что либо необходимо представлять как это будет выглядеть. В данном случае выглядеть это будет следующим образом: при нажатии на кнопку на форме (дальше мы добавим ее) появляется диалог выбора файла. Мы выбираем файл и выбранный файл воспроизводится.

Добавьте на форму компоненты TButton и TOpenDialog (на вкладке Dialogs панели инструментов). Измените у кнопки свойство Caption на "Открыть". Создайте событие OnClick (дважды кликнуть по кнопке). там пишем:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    MediaPlayer1.FileName := OpenDialog1.FileName;
    MediaPlayer1.Open;
  end;
end;

Что же такое OpenDialog1.Execute? Это тоже самое если бы я написал OpenDialog1.Execute=true. Означает это следующее: при вызове OpenDialog1.Execute появляется диалог открытия файла и если пользователь нажмет "Отмена" то функция Execute возвратит False, а если выберет файл то True. Тут и получается, что если пользователь выбрал файл, то путь к нему нужно записать в свойство FileName и открыть этот файл. Теперь можно запустить программу и попробовать открыть файл.

Но компонент выглядет некрасиво. Выложим на форму 3 кнопки (TButton). Измените свойство Caption у первой кнопки на "Воспроизвести". Создайте событие OnClick у этой же кнопки:

procedure TForm1.Button2Click(Sender: TObject);
begin
  MediaPlayer1.Play
end;

У следующей кнопки измените Caption на "Пауза". По клику:

procedure TForm1.Button3Click(Sender: TObject);
begin
  MediaPlayer1.Pause
end;

И надпись на последней кнопке напишите "Стоп". Кликните по ней два раза и напишите следующее:

procedure TForm1.Button4Click(Sender: TObject);
begin
  MediaPlayer1.Stop;
  MediaPlayer1.Position:=0;
end;

MediaPlayer1.Position - это устанавливаем позицию воспроизведения в начало. Чтобы если нажать на кнопку "Воспроизвести" воспроизведение не продолжалось а начиналось сначала.

Теперь можно запустить программу. Но нам теперь нужно сделать так, чтобы небыло видно компонента TMediaPlayer. Сделать это просто, изменив свойство Visible у него на False.

Сделаем "бегунок" который будет показывать позицию воспроизведения. Выложим на форму компонент TTrackBar и TTimer. Такой компонент вы уже видели много раз в других программах и знаете для чего он нужен. Щелкните два раза по кнопке с надписью "Открыть" и немного измените код:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    MediaPlayer1.FileName := OpenDialog1.FileName;
    MediaPlayer1.Open;
    TrackBar1.Max:=MediaPlayer1.Length;
  end;
end;

Добавилась еще одна строчка - TrackBar1.Max:=MediaPlayer1.Length. Свойство Max - это максимальное значение у TTrackBar. Position - это текущая позиция, т.е. этот параметр может изменяться от 0 до Max. Вот как раз это мы и будем делать. MediaPlayer1.Length - Это длина файла.

Теперь разберемся с таймером. У таймера два основных свойства: Interval и Enabled. Первое это интервал в милисекундах по истечении которого выполнится действие описанное в событии OnTimer. А второе это будет ли таймер работать.

Кликните дважды по иконке таймера расположенного на форме. Создастся процедура которая будет выполняться каждые, например, 1000 милисекунд (если свойство Interval = 1000). Сделайте так:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  TrackBar1.Position:=MediaPlayer1.Position;
end;

Теперь каждую секунду (1000 милисекунд) будет позиция TrackBar1 устанавливаться соответственно позиции воспроизведения.

Осталось очистить установленное в самом начале свойство FileName У TMediaPlayer, а также свойство AutoOpen в False. Иначе программа будет пытаться открыть файл указанный в FileName, но так как там ничего не написано, то произойдет ошибка.

Ну вот и всё. Программа работает. Конечно её еще до ума нужно доводить, это только самый минимум. Нужно будет сделать запрет на нажатие кнопок когда их нельзя нажимать (например нельзя нажимать кнопку "Воспроизведение" если не выбран файл, иначе произойдет ошибка). Можно сделать интерфейс прогрммы с симпатичными кнопками, загрузив картинки в компоненты TImage.

В данном уроке мы разабрали три компонента TMediaPlayer, TTimer и TTrackBar.

Будет очень полезно если вы будете в каждом уроке делать больше чем описанно.

Скачать исходник [13.5 кб]

Урок 10: Основы работы с Canvas

Просмотров: 26449

Обсудить на форуме

Copyright © 2008-2016 Программирование на Delphi для начинающих и не только

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации

Хостинг от uCoz

Автор проекта: Борисов Сергей

e-mail: save-x@yandex.ru

Связь с администрацией сайта