gpt4 book ai didi

html - 如何在我的 DirectShow 应用程序上覆盖 html 元素?

转载 作者:可可西里 更新时间:2023-11-01 14:52:05 27 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

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

I've been reading up on put_MessageDrain and put_Owner

这些是针对窗口模式的,您似乎使用的是 Windowless,它假定您提供了一个托管窗口和矩形以不透明地覆盖。无渲染,VMR-7/9 和 EVR 为您提供的第三种模式是您提供分配器/演示器并覆盖演示文稿的模式。

Windows SDK(对于某些人,您可能需要寻找旧版本,而不是最新版本)提供了 samples : Renderless, VMR9Allocator, EVRPresenter 演示无渲染模式。

关于html - 如何在我的 DirectShow 应用程序上覆盖 html 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16966059/

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