Тема: Кодеки..
Показать сообщение отдельно
  #3  
Старый 06.10.2007, 12:19
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
Счастье DirectShow

Можно попробовать используя MPlayer или напрямую через DirectShow.
Код:
uses 
 ...DShow, ActiveX, ComObj; 
 
 procedure TForm1.Button1Click(Sender: TObject); 
 
 var 
 MyGraphBuilder: IGraphBuilder; 
 MyMediaControl: IMediaControl; 
 VideoWindow: IVideoWindow; 
 
 begin 
 
 CoInitialize(nil); 
 {получаем интерфейс IGraphBuilder} 
 CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, 
  IID_IGraphBuilder, MyGraphBuilder); 
 
 {вызываем RenderFile - граф фильтров строится автоматически} 
 MyGraphBuilder.RenderFile('C:\Program Files\Borland\Delphi5\Demos\Coolstuf\cool.avi', nil); 
 
 {получаем интерфейс ImediaControl} 
 MyGraphBuilder.QueryInterface(IID_IMediaControl, MyMediaControl); 
 {Примечание - MyMediaControl - переменная типа IMediaControl} 
 
 {получаем интерфейс IVideoWindow} 
 MyGraphBuilder.QueryInterface(IID_IVideoWindow, VideoWindow); 
 {Примечание - VideoWindow - переменная типа IVideoWindow} 
 
 {располагаем окошко с видео на панель} 
 VideoWindow.Set_Owner(Self.Panel1.Handle); 
 VideoWindow.Set_WindowStyle(WS_CHILD or WS_CLIPSIBLINGS); 
 VideoWindow.SetWindowPosition(0, 0, Panel1.ClientRect.Right, 
  Panel1.ClientRect.Bottom); 
 
 {проигрываем видео} 
 MyMediaControl.Run; 
 
 ShowMessage('Нажмите OК'); 
 
 CoUninitialize; 
 end; 
Заголовочные файлы DirectX можно взять с http://www.delphi-jedi.org
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием