Auf dem Formular das Schaltfläche, Trackbar, das Panel (Panel1 - der Nachfolger von TPanel + wird Canvas hinzugefügt, align=client), Ich starte das Video über EVR auf dem Panel (TPanel)
...
FGraph: IGraphBuilder;
FEVR: IBaseFilter;
FDisplayControl: IMFVideoDisplayControl;
...
OnBtnclik>>
if not Succeeded (CoCreateInstance (CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, FGraph)) then Exit;
if not Succeeded (CoCreateInstance (CLSID_EnhancedVideoRenderer, nil, CLSCTX_INPROC, IID_IBaseFilter, FEVR)) then Exit;
FGraph. AddFilter (FEVR, 'EVR');
(FEVR as IMFGetService).GetService (MR_VIDEO_RENDER_SERVICE, IID_IMFVideoDisplayControl, FDisplayControl);
FDisplayControl. SetVideoWindow (Panel1.Handle);
UpdateEvr; // resize
FGraph. RenderFile (PWideChar ('c:\video\myvideo.avi'), nil);
FDisplayControl. SetAspectRatioMode (0);
...
OntrackbarChange>>
...
with panel1.Canvas do
begin
Font. Color: = cllime;
Brush. Style: = bsclear;
Font. Size: = 20;
TextOut (10, 10, ' TRANSPARENTER TEXT ');
end;
Der Text wird angezeigt, aber flackert. Wie kann man den normalen transparenten Text auf Panel1 während des Videoabspielens ausgeben?
CG.E.Rad 2010