【问题标题】:Detect renderer window's monitor change using GMFBridge使用 GMFBridge 检测渲染器窗口的监视器变化
【发布时间】:2014-08-04 15:31:31
【问题描述】:

我想使用 DirectShow 渲染和录制来自模拟摄像机的视频。当我将渲染器窗口从一个监视器移动到另一个监视器时,图形会重新启动,并且重新启动图形会导致记录丢失。为了避免这种情况,我开始使用 GMFBridge。我对视频进行编码并将其写入文件并使用 Infinite Tee,我将帧传递给第二个图形,其中存在渲染器。所以当渲染器图重新启动时,我的记录图不会影响。

但是当我将窗口移动到另一个监视器时,第二个图形(渲染器图形)停止,我看到的只是黑屏。为什么使用 GMFBridge 时渲染器图在停止后不启动?

我认为我应该处理事件。我发现当我将窗口移动到另一台显示器时,我会收到以下消息:

#define EC_VMR_RENDERDEVICE_SET 0x53

#define EC_PAUSED               0x0E

但我不知道处理这些消息是否正确(以了解监视器更改)。

【问题讨论】:

    标签: c# video directshow renderer directshow.net


    【解决方案1】:

    我将视频渲染器过滤器从 Video Renderer 更改为 Video Mixing Renderer Filter 9,现在一切正常。当我将窗口移动到另一台监视器时,图形重新启动没有问题。由于我使用 GMFBridge,重新启动渲染器图不会影响我的记录图。

    【讨论】:

      猜你喜欢
      • 2017-09-12
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多