Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Свой видеоплеер   Найти похожие ветки 

 
Игорь   (2004-01-20 09:12) [0]

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


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

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


 
Intell ©   (2004-01-20 10:40) [2]

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

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


 
NailMan ©   (2004-01-20 14:07) [3]

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

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

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


 
Avenger[NhT] ©   (2004-01-21 14:51) [4]

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


 
TankMan ©   (2004-01-21 16:54) [5]

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


 
TankMan ©   (2004-01-21 17:42) [6]

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

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;


 
demon_ ©   (2004-01-22 13:39) [7]

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.


 
demon_ ©   (2004-01-22 13:42) [8]

gde mv ento TMediaPlayer


 
TrollXP ©   (2004-01-22 15:29) [9]

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


 
TankMan ©   (2004-01-22 18:19) [10]

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


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

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

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


 
TankMan ©   (2004-01-28 02:19) [12]

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


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

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


 
TankMan ©   (2004-01-31 19:33) [14]

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


 
TrollXP ©   (2004-02-02 17:14) [15]

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


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

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


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

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


 
TankMan ©   (2004-02-04 17:50) [18]

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



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
1-1082243250
nsvi
2004-04-18 03:07
2004.05.02
WebBrowser поиск во фреймах


9-1068310197
Cash
2003-11-08 19:49
2004.05.02
Взаимодействия спрайтов


14-1081765345
Тимохов
2004-04-12 14:22
2004.05.02
BOOL


8-1075559104
iudjen
2004-01-31 17:25
2004.05.02
mediaplayer


4-1078388144
Serega_____
2004-03-04 11:15
2004.05.02
Введение новой оконной процедуры