Форум: "KOL";
Текущий архив: 2010.10.17;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "KOL";
Текущий архив: 2010.10.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c