29.12.2024
| Главная | Поиск | Регистрация | Профиль | Вход | Выход |
Реклама
Реклама
Интересное
Главная » Статьи » Программирование на Делфи » Программирование на Делфи

Медиа плейер своими "ногами" ;)
И так, решил написать маленький, скажем даже не нужный проигрыватель видео и музыки, немного помучался и написал...
Этот проигрыватель (далее - П) будет содержать 2 окна, на 1 разместим 1 кнопочку (Button), Edit (сюда будем выбирать файл, который будем воспроизводить), 5 панелей (Panel) и TrackBar (будет служить для показа сколько прошло / осталось времени). Панели будут выполнять фунции кнопок (Воспроизведение, Пауза, Назад, Вперед, Остановить), а кнопка будет называться Обзор.
СОВЕТУЮ разместить елементы так: вверху Edit напротив него Button, под ними
TrackBar и еще ниже 5 панелей.
Где эти все "инструменты находятся": Button, Edit, Panel >> вкладка Standard,
TrackBar >> Win32.
Для удобства из вкладки Win32 можно взять манифест ХП (самый последний значок) + надо, таймер (Timer) из вкладки System, Опен Диалог (OpenDialog) вкладка Dialogs и сам "проигрыватель" (MediaPlayer) из вкладки System.
MediaPlayer (Visible ставим = False (чтоб небыло видно)), ну а дальше легенький код проги (я решил дать сразу весь текст, так как посчитал это более удобным):

unit Media1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, XPMan, ExtCtrls, ComCtrls, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Scroll: TTrackBar;
Play: TPanel;
Pause: TPanel;
Back: TPanel;
Forward: TPanel;
Stop: TPanel;
Timer1: TTimer;
XPManifest1: TXPManifest;
Open1: TOpenDialog;
MediaPlayer1: TMediaPlayer;
procedure PlayMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PlayMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PauseMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PauseMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BackMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BackMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ForwardMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ForwardMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure StopClick(Sender: TObject);
procedure StopMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure StopMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PlayClick(Sender: TObject);
procedure PauseClick(Sender: TObject);
procedure BackClick(Sender: TObject);
procedure ForwardClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PlayMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Play.BevelInner:=bvRaised;
Play.BevelOuter:=bvLowered;
end;

procedure TForm1.PlayMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Play.BevelInner:=bvRaised;
Play.BevelOuter:=bvLowered;
end;

procedure TForm1.PauseMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Pause.BevelInner:=bvRaised;
Pause.BevelOuter:=bvLowered;
end;

procedure TForm1.PauseMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Pause.BevelInner:=bvLowered;
Pause.BevelOuter:=bvRaised;
end;

procedure TForm1.BackMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Back.BevelInner:=bvRaised;
Back.BevelOuter:=bvLowered;
end;

procedure TForm1.BackMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Back.BevelInner:=bvLowered;
Back.BevelOuter:=bvRaised;
end;

procedure TForm1.ForwardMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Forward.BevelInner:=bvRaised;
Forward.BevelOuter:=bvLowered;
end;

procedure TForm1.ForwardMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Forward.BevelInner:=bvLowered;
Forward.BevelOuter:=bvRaised;
end;

procedure TForm1.StopClick(Sender: TObject);
begin
// Останавливаю;
MediaPlayer1.Stop;
// И делаю первый кадр текущим;
MediaPlayer1.Position:=1;
end;

procedure TForm1.StopMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Stop.BevelInner:=bvRaised;
Stop.BevelOuter:=bvLowered;
end;

procedure TForm1.StopMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Stop.BevelInner:=bvLowered;
Stop.BevelOuter:=bvRaised;
end;

procedure TForm1.PlayClick(Sender: TObject);
begin
// связываю плеер с файлом;
MediaPlayer1.FileName:=Edit1.Text;
// Инициализую устройство;
MediaPlayer1.Open;
// Воспроизвожу;
MediaPlayer1.Play;
// устанавливаю границы прокрутки;
Scroll.Max:=MediaPlayer1.TrackLength[1];
// Активизирую таймер;
Timer1.Enabled:=True;
end;

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

procedure TForm1.BackClick(Sender: TObject);
begin
// Перевожу на 100 кадров назад;
MediaPlayer1.Position:=MediaPlayer1.Position - 100;
// И продолжаю воспроизведение;
MediaPlayer1.Play;
end;

procedure TForm1.ForwardClick(Sender: TObject);
begin
// Перевожу на 100 кадров вперед;
MediaPlayer1.Position:=MediaPlayer1.Position + 100;
// И продолжаю воспроизведение;
MediaPlayer1.Play;
end;

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

procedure TForm1.Button1Click(Sender: TObject);
begin
if not Open1.Execute then
ShowMessage('Файл не был выбран! ^^')
else Edit1.Text:=Open1.FileName;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
Str:String;
i:Integer;
begin
if ParamCount > 0 then begin
Str:=ParamStr(1);
for i:=2 to ParamCount do
Str:=Str + ' ' + ParamStr(i);
end;
if Str <> '' then begin
Edit1.Text:=Str;
MediaPlayer1.FileName:=Edit1.Text;
MediaPlayer1.Open;
MediaPlayer1.Play;
Scroll.Max:=MediaPlayer1.TrackLength[1];
Timer1.Enabled:=True;
end;
end;

end.

______________________________________________________________________

Для панелей, чтоб они работали, как кнопки делаю событие: OnMouseDown, и OnMouseUp^^
Поэтому ОБЯЗАТЕЛЬНО смотрите напроцедуры, изза них у вас могут быть ошибки!!!

Это моя первая статья, так что извиняйте, кому что не понравилось...
По вопроссам и т.д. обращаться (Email):
1) azzik2222@ya.ru ;
2) v1s.xaker.ru ;

асю не помню, скайп: vissik2222 ;
Категория: Программирование на Делфи | Добавил: MalCer (30.07.2009)
Просмотров: 413 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Реклама
Кабинет

Читать ЛС ()

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!



Фраза дня:
Кто с нами

Сегодня были:
Статистика
Партнеры
Graffiti Decorations(R) Studio (TM) Site Promoter Mnogo-softa.net.ru-Софт,срипты,шаблоны и др. MEGA-ToP-ТОП раскрутка раскрутка сайтов. Рейтинг лучших сайтов
описание