繁体   English   中英

如何在我的DirectShow应用程序上叠加html元素?

[英]How can I overlay html elements over my DirectShow application?

我正在使用DirectShow应用程序,该应用程序导出为视频流的Firefox插件。

据我所知,似乎插件是在与网页不同的窗口上呈现的。 我想编辑应用程序以允许html元素覆盖插件,就像flash允许使用wmode ='opaque'或'transparent'。 另一个可行的选项是通过应用程序传递鼠标事件(例如鼠标移动和鼠标按下)。

我一直在阅读put_MessageDrain和put_Owner,但我不确定如何将这些应用于应用程序或它们是否有效。

我也知道iframe shimming可能有效,但由于我可以访问应用程序的源代码,我想直接添加功能而不是使用解决方法。 iframe是否是我最好的选择? 这似乎是最简单的选择。

该应用程序当前使用无窗口模式,并始终位于网页上的其他所有内容之上。

使用DirectShow视频渲染器显示视频的方式,如果没有为其中一个标准视频渲染器提供自己的视频渲染器过滤器或自定义分配器/演示器对象,则无法使其透明。 DirectShow渲染器使用DirectDraw或Direct3D表面显示视频,这些视频独立于托管窗口,并且不会以某种方式与主机进行交互,以便将组合图片与透明视频和其他内容相结合。

我一直在阅读put_MessageDrainput_Owner

这些是用于窗口模式,你似乎使用Windowless,它假设你提供一个托管窗口和矩形来不透明地覆盖。 Renderless,第三​​种模式VMR-7/9和EVR为您提供分配器/演示器并覆盖演示文稿。

Windows SDK(对于某些您可能需要查找旧版本,而不是最新版本)提供了示例RenderlessVMR9AllocatorEVRPresenter ,演示无EVRPresenter模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM