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

Вниз

KOLMediaPlayer   Найти похожие ветки 

 
Dy1   (2008-10-31 21:52) [0]

вопрос наверно глупый...
Как запустить плеер из чистого КОЛ? При создании с помощью КОЛнМЦК работает, а в КОЛ не получается
program ScrSvrVid;
uses FastMM4, Windows, KOL,
 main in "main.pas",
 dlg in "dlg.pas";
var
 s: string;
begin
Run_;
end.


unit main;
interface
uses
 Windows, KOL, KOLMediaPlayer;
 procedure Run_;
var
 f: PControl;
 mp: PMediaPlayer;
 
implementation

procedure onnotif(d: pointer; Sender: PMediaPlayer; NotifyValue: TMPNotifyValue);
begin
 if NotifyValue = nvSuccessful then
   Sender.Play(1,-1);
end;

procedure Run_;
begin
 f := NewForm(nil, "");
//  f.HasCaption := False; // не работает, не показывает окно
 f.Show;
 mp := NewMediaPlayer("t.wmv", f.GetWindowHandle);//кодек стоит
 mp.OnNotify := TMPOnNotify(MakeMethod(nil, @onnotif));
Run(f);
 mp.Stop;
 mp.Free;
end;
end.


 
Дмитрий К ©   (2008-10-31 22:49) [1]

program Project1;

uses
 KOL, KOLMediaPlayer;

var
 Form: PControl;
 Btn: PControl;
 MP: PMediaPlayer;

procedure BtnClick(Dummy, Sender: PObj);
begin
 MP.Play(0, MP.Length);
end;

begin
 Form := NewForm(nil, "");
 Applet := Form;
 Form.CreateWindow;
 Form.HasCaption := False;
 MP := NewMediaPlayer("c:\windows\media\tada.wav", Form.Handle);
 Form.Add2AutoFree(MP);
 Btn := NewButton(Form, "Play");
 Btn.OnClick := TOnEvent(MakeMethod(nil, @BtnClick));

 Run(Applet);
end.


 
Dy1   (2008-11-02 00:50) [2]

Дмитрий К, в проекте будет только обработка ключей запуска, а всё остальное - в модуле(-ях). По-другому будет каша


 
Dy1   (2008-11-02 01:13) [3]

в моём варианте вылезает ошибка, в другом вообще не запускается


 
Дмитрий К ©   (2008-11-02 18:19) [4]

МедиаПлейеру нужен Applet для обработки нотификаций.


 
Dy1   (2008-11-03 13:28) [5]

музыка есть, нет видео - AV. Во всех вариантах. Кодеки стоят. КОЛ 2.87 с не помню сколькими плюсами


 
finder2007   (2008-11-03 19:29) [6]

Была такая же проблема. Заюзал DirectShow - помогло.


 
Dy1   (2008-11-03 20:55) [7]

как?


 
finder2007   (2008-11-04 13:23) [8]

Что-то навроде этого:

uses DShow, ActiveX, ComObj;

var
 MyGraphBuilder: IGraphBuilder;
 MyMediaControl: IMediaControl;
 MyMediaEventEx: IMediaEventEx;
 MyMediaSeeking: IMediaSeeking;
 MyVideoWindow : IVideoWindow;
 MyBasicAudio  : IBasicAudio;


*********
При запуске программы:
CoInitialize(nil);
*********
При выходе:
CoUninitialize;
*********

function Play(f:Kol_String):boolean;
var hr:integer;
begin
 result:=false;
 CoCreateInstance(CLSID_FilterGraph,nil,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,My GraphBuilder);
 hr:=MyGraphBuilder.RenderFile(StringToOleStr(f),nil);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IMediaControl,MyMediaControl);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IMediaEventEx,MyMediaEventEx);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IMediaSeeking,MyMediaSeeking);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IBasicAudio,MyBasicAudio);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IVideoWindow,MyVideoWindow);
 if FAILED(hr) then exit;
 hr:=MyVideoWindow.put_Owner(Form1.Panel1.Handle);
 if FAILED(hr) then exit;
 hr:=MyVideoWindow.put_WindowStyle(WS_CHILD OR WS_CLIPSIBLINGS);
 if FAILED(hr) then exit;
 hr:=MyVideoWindow.SetWindowPosition(0,0,Form1.Panel1.ClientRect.Right,Form1.Pane l1.ClientRect.Bottom);
 if FAILED(hr) then exit;
 hr:=MyBasicAudio.put_Volume(VolumeTrackBar.Position);

 hr:=MyMediaControl.Run;
 if FAILED(hr) then exit;

 result:=true;
end;


А более подробно сюда - http://directshow.wonderu.com/



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

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

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1274281038
Vass
2010-05-19 18:57
2010.10.17
Узнать Top предыдущего элемента в списке TList


15-1278713312
limpopo
2010-07-10 02:08
2010.10.17
Оцените реализацию привязки к железу (генерации серийного номера)


15-1279186049
Дмитрий С
2010-07-15 13:27
2010.10.17
Это правильно, что этот код компилируется...


3-1246433519
nachi
2009-07-01 11:31
2010.10.17
посчитать сумму параметров дочерних эл-тов


15-1278865350
Кто б сомневался
2010-07-11 20:22
2010.10.17
Unzip компонент