Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Свой видеоплеер [D6, WinXP]


Игорь ©   (2004-01-20 09:12:00) 

Ребята, посоветуйте как попроще можно было бы воспроизводить mpg'ки с возможностью полноэкранного режима а так же вывода своего текста на канве видео? Может у кого есть кусок кода? Или ссылки. Буду очень благодарен за любой ответ.


TankMan   (2004-02-04 17:50:00) [1]

А ктонибудь знает, как сделать так, чтобы при переходе в на полный экран мышь исчезала, но потом при движении появлялась... просто я как ни пытался так и не понял, почему, при переходе в полноэкранный режим, мышь исчезает на всегда... т.е. пока не закроешь его :(


TrollXP   (2004-02-04 17:20:00) [2]

У меня тоже :((( Мож дней так через пару...


TankMan   (2004-02-04 00:45:00) [3]

А она у меня почему-то не работает :(


TrollXP   (2004-02-02 17:14:00) [4]

2 TankMan
Посмотри на www.delphim.amilo.net. Если я не ошибаюсь, то там есть. Удачи.


TankMan   (2004-01-31 19:33:00) [5]

Это все кончено хорошо... но всеже я не пойму почему уже второй раз удаляют мою тему?! даже не говорят почему? Я конечно догадываюсь (что данный вопрос уже рассматривался(ется) в этом топике) но всеже, как найти эту тему с таким "отличным" поиском?!? Может кто-нибудь посоветует где взять комопнент для использования его в качестве "перемотки" при проигрывании видео файлов... а то меня неустраивает TrackBar - нужно что-то... может быть по красивее...


bytebutcher   (2004-01-31 11:10:00) [6]

Да ужжжжжж. Это выглядит как копошение малышей в песочнице.
Ребята зайдите на сайт www.progdigy.com
библиотека DSPack 2.31
и куча примеров


TankMan   (2004-01-28 02:19:00) [7]

Так кто-нибудь скажет, как сделать в том примере, что я выложил - перемотку файла? и определение длинны (хотя если уж можно перематать, то уж точно можно определить длинну...) и всеже... или может кто другой способ открытия видео файла предложит?... ну весит же вопрос не решенный?


Avenger[NhT]   (2004-01-24 00:32:00) [8]

>TankMan ©   (22.01.04 18:19) [10]
>Да нафиг этот TMediaPlayer... - лажа глючная...

Точно! DirectShow рурулит!
Архив можно взять на http://delphigfx.mastak.ru/качайте DelphiX или отдельно DirectX


TankMan   (2004-01-22 18:19:00) [9]

Да нафиг этот TMediaPlayer... - лажа глючная...


TrollXP   (2004-01-22 15:29:00) [10]

2 NailMan
Полностью с тобой согласен. Но я уже месяца 3 ищу этот самый DX SDK и никак не найду. Мож скинешь на мыло исходничек. Заранее премного благодарен.


demon_   (2004-01-22 13:42:00) [11]

gde mv ento TMediaPlayer


demon_   (2004-01-22 13:39:00) [12]

unit VUnit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, Menus;

type
 Tvideoform = class(TForm)
   PopupMenu1: TPopupMenu;
   N1001: TMenuItem;
   N2001: TMenuItem;
   N1: TMenuItem;
   procedure FormCreate(Sender: TObject);
   procedure FormDblClick(Sender: TObject);
   procedure N1001Click(Sender: TObject);
   procedure N2001Click(Sender: TObject);
   procedure N1Click(Sender: TObject);
   procedure FormClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 videoform: Tvideoform;
 h,w:integer;
implementation

uses SUnit1;

{$R *.dfm}

procedure Tvideoform.FormCreate(Sender: TObject);
begin
//videoform.Top:=0;
//videoform.Left:=0;
//videoform.Width:=screen.Width;
//videoform.Height:=screen.Height;
end;

procedure Tvideoform.FormDblClick(Sender: TObject);
begin
videoform.Width:=w;
videoform.Height:=h;
mainform.mv.DisplayRect:=videoform.ClientRect;
videoform.Width:=mainform.mv.DisplayRect.Right-mainform.mv.DisplayRect.Left;
videoform.Height:=mainform.mv.DisplayRect.Bottom-mainform.mv.DisplayRect.Top;
videoform.Top:=((mainform.pvideo.Height-videoform.Height) div 2);
videoform.Left:=((mainform.pvideo.Width-videoform.Width) div 2)+mainform.pvideo.Left;
end;

procedure Tvideoform.N1001Click(Sender: TObject);
begin
videoform.Width:=w;
videoform.Height:=h;
mainform.mv.DisplayRect:=videoform.ClientRect;
videoform.Width:=mainform.mv.DisplayRect.Right-mainform.mv.DisplayRect.Left;
videoform.Height:=mainform.mv.DisplayRect.Bottom-mainform.mv.DisplayRect.Top;
videoform.Top:=((mainform.pvideo.Height-videoform.Height) div 2);
videoform.Left:=((mainform.pvideo.Width-videoform.Width) div 2)+mainform.pvideo.Left;
end;

procedure Tvideoform.N2001Click(Sender: TObject);
begin
videoform.Width:=w*2;
videoform.Height:=h*2;
mainform.mv.DisplayRect:=videoform.ClientRect;
videoform.Width:=mainform.mv.DisplayRect.Right-mainform.mv.DisplayRect.Left;
videoform.Height:=mainform.mv.DisplayRect.Bottom-mainform.mv.DisplayRect.Top;
videoform.Top:=((mainform.pvideo.Height-videoform.Height) div 2);
videoform.Left:=((mainform.pvideo.Width-videoform.Width) div 2)+mainform.pvideo.Left;

end;

procedure Tvideoform.N1Click(Sender: TObject);
begin
videoform.Width:=screen.Width;
videoform.Height:=screen.Height;
mainform.mv.DisplayRect:=videoform.ClientRect;
videoform.Width:=mainform.mv.DisplayRect.Right-mainform.mv.DisplayRect.Left;
videoform.Height:=mainform.mv.DisplayRect.Bottom-mainform.mv.DisplayRect.Top;
videoform.Top:=0;
videoform.Left:=0;

end;

procedure Tvideoform.FormClick(Sender: TObject);
begin
mainform.pausev;
end;

end.


TankMan   (2004-01-21 17:42:00) [13]

Я вот тут пример нашел... никто не мог бы мне помочь разобраться в том, как тут файл перематывать, да и вообще получить сведения о длительности файла и т.д... а то он только проигрывает.. :(

MyGraphBuilder : IGraphBuilder;
MyMediaControl : IMediaControl;
VideoWindow  : IVideoWindow;
pWidth: Longint;
pHeight: Longint;

procedure TForm1.Button1Click(Sender: TObject);
begin
//CoInitialize(nil);
{получаем интерфейс IGraphBuilder}
CoCreateInstance(CLSID_FilterGraph,nil,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,MyGraphBuilder);
{вызываем RenderFile - граф фильтров строится автоматически}

MyGraphBuilder.RenderFile('D:\фильмы\форсаж.avi',nil);
{получаем интерфейс IMediaControl}

MyGraphBuilder.QueryInterface(IID_IMediaControl,MyMediaControl);
//MyGraphBuilder.QueryInterface(IID_IVPNotify,pColorControl);
{получаем интерфейс IVideoWindow}
MyGraphBuilder.QueryInterface(IID_IVideoWindow,VideoWindow);
{Примечание - VideoWindow - переменная типа IVideoWindow}
{располагаем окошко с видео на панель}
VideoWindow.Put_Owner(Self.Panel1.Handle);
VideoWindow.Put_WindowStyle(WS_CHILD OR WS_CLIPSIBLINGS);
VideoWindow.SetWindowPosition(0,0,Panel1.Width,Panel1.Height);
{Примечание - MyMediaControl - переменная типа IMediaControl}
{проигрываем видео}
MyMediaControl.Run;
end;


TankMan   (2004-01-21 16:54:00) [14]

>>NailMan
ОО и мне можно тоже исходничек? на Tankist@softhome.net...


Avenger[NhT]   (2004-01-21 14:51:00) [15]

NailMan, а как получить список кодеков которые юзаются для воспроизведения текущего фильма и как вызвать диалог настроек для этого кодека?


NailMan   (2004-01-20 14:07:00) [16]

Делай на DirectShow и не парься всякими левыми оболочками. Гораздо эффективней и гибче можно сделать.

В DX SDK полно примеров по созданию таких приложений.

Могу даже выслать исходничек(*.PAS) как сделать простейший плеер используя DShow(заголовки придется скачать с www.delphi-jedi.org или с моего сайта).


Intell   (2004-01-20 10:40:00) [17]

Я подобной вещью маюсь. Если хочешь присоединиться, то сообши на мыло:
intell_com@mail.ru

Я могу выслать небольшой исходник по некоторым возможностям TMediaPlayer.


Игорь   (2004-01-20 09:52:00) [18]

P.S.
Если даже сделать используя mediapleer, как тогда выводить в углу дисплея, поверх видео, текущее время?


Наверх

Титульная страница Поиск, карта сайта Написать письмо