Directx 在自定义分配器中显示视频的活动窗口

Directx 在自定义分配器中显示视频的活动窗口,directx,video-streaming,directshow,Directx,Video Streaming,Directshow,我使用自定义分配器示例在面板上显示视频,对于一些文件,它会在一些活动窗口上播放视频,并单独显示。我怎样才能避免这个不需要的窗口被打开 你是什么意思?开始播放文件时,会打开一个包含实际视频的窗口 如果是这样的话,你可能想调查这个问题。您可以创建允许您截取的,然后允许您在任何地方绘制视频的 或者,我个人认为这更容易,您需要研究转储过滤器示例,然后使用它来构建自己的渲染器。这样,当你收到框架时,你可以用它做任何你想做的事情,而不必费心处理内部结构。如果您不希望过滤器在应用程序之外可用,那么编写过滤器非

我使用自定义分配器示例在面板上显示视频,对于一些文件,它会在一些活动窗口上播放视频,并单独显示。我怎样才能避免这个不需要的窗口被打开

你是什么意思?开始播放文件时,会打开一个包含实际视频的窗口

如果是这样的话,你可能想调查这个问题。您可以创建允许您截取的,然后允许您在任何地方绘制视频的

或者,我个人认为这更容易,您需要研究转储过滤器示例,然后使用它来构建自己的渲染器。这样,当你收到框架时,你可以用它做任何你想做的事情,而不必费心处理内部结构。如果您不希望过滤器在应用程序之外可用,那么编写过滤器非常简单


编辑:您是否已将RenderingMode设置为VMR9Mode_Windowless?

通常,当解码器和渲染器无法在连接上达成一致时,会在ActiveMovie窗口中播放视频,因此graph builder使用默认渲染器(如果您通过执行RenderFile方法自动构建图形),单独播放。在分配器的InitializeDevice方法中检查代码,如果InitializeDevice始终失败,则视频将在默认渲染器中渲染

确保您使用的是VMR9Mode\u无渲染模式。如果您没有在VMR7/9中使用任何混合,我建议删除对SetNumberOfStreams方法的任何调用,这会使事情变得更简单


可以找到自定义分配器用法的很好的示例

谢谢你的回复。是的,它打开新视频与实际视频。我已经制作了自己的自定义分配器,在本次通话中,我正在面板上绘制视频。正如前面提到的一些视频文件,显示了此视频窗口。。