Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
Игорь   (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 вся ветка

Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.034 c
3-1080886816
Patrick
2004-04-02 10:20
2004.05.02
Упаковка данных.


1-1081879867
Mishenka
2004-04-13 22:11
2004.05.02
Кавычки в FileNameEdit из RxLib...


1-1081740969
AlexV
2004-04-12 07:36
2004.05.02
RichEdit1.FindText похоже, что не работает с русскими буквами :-(


1-1081861663
_новый_
2004-04-13 17:07
2004.05.02
как убрать пробелы по краям в строке?


14-1081502658
}|{yk
2004-04-09 13:24
2004.05.02
Я так понял в форум Основной уже никто не смотрит





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский