Медиаплеер своими руками

Источник: pcnext
Darkmaster

Сегодня мы с вами разберемся, как с помощью Delphi написать простейший проигрыватель музыки, а также простеньких видео-файлов формата avi. Вообще же написание своего проигрывателя(простейшего конечно же) несложная задача, поэтому сразу же замечу, что эта статья будет интересна начинающим программистам. Все остальные в ней не нуждаются. Если вы все еще читаете эти строки то значит вы один из начинающих, а значит что-то отсюда почерпнете для себя. Для начала давайте определимся с интерфейсом нашего проигрывателя. Я предлагаю сделать овальную форму. Можно конечно воспользоваться компонентом для этого(я слышал что есть такие), а можно сделать это вручную. Как это делается я читал в одной документации VR-online. Для этого нам придется прописать всего две строчки в oncreate нашей формы. Сложно? Нет. Вот эти строки:

procedure TForm1.FormCreate(Sender: TObject);
begin
FormRgn:=CreateEllipticRgn(0,0,Width,Height);
SetWindowRgn(Handle,FormRgn,true);
end;

Что значит CreateEllipticRgn, а то что нам нужен эллипс! Значения в скобах попробуйте поизменять и увидите эффект. Теперь собственно переходим к самому плееру, бросьте на форму компонент mediaplayer - именно с ним нам и предстоит работать. Также бросьте на офрму компонент OpenDialog с вкладки dialogs. Итак, теперь выделяем наш компонент mediaplayer. Для начала сделайте его невидимым. Для этого в обьектном инспекторе найдите свойство Visible и установите в false. Мы будем использовать свои кнопки! Но для начала покодим! Впишите в public:

FileName:string;

Теперь бросаем кнопку открыть(как оформить выбирайте сами). По нажатии на клавишу пишем следующий код:

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

Что мы сделали? Мы для начала проверили открыт ли выбор файлов, раз открыт то присвом FileName файл который вы выберите. Все просто. Теперь давайте создадим кнопку играть, тем более что сделать это нужно именно сейчас. Вот код:

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
MediaPlayer1.FileName:=FileName;
MediaPlayer1.Open;
MediaPlayer1.Play;
End;

В начале мы присваиваем песню, потом открываем ее, ну а затем играем ее. Теперь давайте создадим кнопку «пауза». Кстати не путайте паузу и стоп. Стоп останавливает мелодию, а пауза приостанавливает и потом позволяет продолжить мелодию с того же места где мы остановились.

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
MediaPlayer1.Pause;
End;
Ну, а теперь стоп:
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
MediaPlayer1.Stop;
End;

Теперь давайте создадим для нашего проигрывателя регулятор громкости. Для этого кинем на форму два компонента TrackBar. Теперь выделите оба этих компонента и создайте для них событие onchange. Туда пропишите вот этот код:

procedure TForm1.TrackBar1Change(Sender: TObject);
var LValue, RValue:Word;
begin
LValue:=$FF-TrackBar1.Position;
RValue:=$FF-TrackBar2.Position;
WaveOutSetVolume(0,(RValue SHL 8)+LValue);
end;

Итак, здорово, мы получили простейший готовый плеер. Что можно улучшить? Ну, первым делом мне кажется нужно создать плейлист, это несложно просто немного подумайте, ну или обращайтесь в наш форум. Там всегда помогут. Потом совету сделать эквалайзер, для этого правда понадобится какой-то компонент, поищите. Потом вам безусловно понадобится встроить поддержку плейлистов с сохранением и загрузкой, проигрывание avi видео, это легко можно реализовать с помощью колмпонента mediaplayer, просто присвойте в его свойстве display скажем Panel1 и наслаждайтесь видео! Ну, а мне пора, форум вам поможет.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=2818