Hallo zusammen,
ich benutze für meinen Media-Player das DSPack von
http://www.progdigy.com/ für
DirectX 9.
von der intitialisierung des eigentlichen "Players" hab ich nicht viel ahnung,
weshalb ich mir nun auch nicht mehr weiterhelfen kann.
hier mal ein kurzer auszug aus der "Load" procedure:
Delphi-Quellcode:
var pGraph : IGraphBuilder;
pSeek : IMediaSeeking;
pVWnd : IVideoWindow;
w: integer;
begin
...
CoCreateInstance(CLSID_FilterGraph,
nil, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, pGraph);
pSeek := pGraph
as IMediaSeeking;
pGraph.RenderFile(@FName[1],
nil);
pVWnd := pGraph
as IVideoWindow;
pVWnd.put_WindowStyle(WS_CHILD);
pVWnd.put_Owner(
handle);
pVWnd.get_Width(w);
pseek.SetRate(1);
...
end;
ich habe also variablen vom typ IVideoWindow und IMediaSeeking, über die ich
ein paar attribute setzen kann.
hier mal alle möglichen typen:
IAMGraphStreams, IAMStats, IBasicAudio, IBasicVideo, IBasicVideo2, IFilterChain,
IFilterGraph, IFilterGraph2, IFilterMapper2, IGraphBuilder, IGraphConfig,
IGraphVersion, IMediaControl, IMediaEvent, IMediaEventEx, IMediaEventSink,
IMediaFilter, IMediaPosition, IMediaSeeking, IQueueCommand, IRegisterServiceProvider,
IResourceManager, IServiceProvider, IVideoFrameStep, IVideoWindow.
doch wenn ich diese benutzen will, dann funktioniert dies einfach nicht.
hier mal der source:
Delphi-Quellcode:
var Audio: IBasicAudio;
begin
Audio := pGraph as IBasicAudio;
Audio.put_Volume(100);
end;
dies fürht zu keinerlei änderung! fehler kommt keiner!
weiß jemand, an was das liegt? wie kann ich dann zum beispiel IBasicAudio.put_Volume(x)
nutzen?
Auch andere Typen habe ich nicht zum laufen bekommen
wäre für eine antwort seeeehr dankbar, da es mich in der entwicklung um einiges weiter
bringen würde!
gruss,
iaby