gpt4 book ai didi

delphi - EVR:视频窗口上的透明文本输出

转载 作者:行者123 更新时间:2023-12-03 18:51:34 25 4
gpt4 key购买 nike

在按钮,轨迹栏,面板上(panel1-来自tpanel +的后继者添加了canvas,align = client),
我通过面板上的EVR启动视频(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, ' TRANSPARENT TEXT ');
end;


显示文本,但闪烁。如何在视频播放过程中推导panel1上的普通透明文本?

CG.E.Rad 2010

最佳答案

在轨迹栏更改事件中您正在绘画对我来说似乎很奇怪。为什么不使用覆盖的Paint方法绘画?如果其他所有减少闪烁的尝试均失败,则可以进行双缓冲。

也就是说,如果可能的话,我可能会避免自定义绘画。我会使用TLabel来显示文本,它将作为绘制周期的一部分进行绘制。如果仍然存在闪烁问题,则可能会发现TStaticText闪烁少于TLabel

关于delphi - EVR:视频窗口上的透明文本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com