问题是构建一个支持三种状态的捕获图:
我已经构建了这样的图形:
此图对应于状态3.现在,如果我想更改状态2,我删除预览流并获取如下图:
想象一下,我运行图表并开始捕获。现在我想回到状态3.如何在不停止图形的情况下执行此操作(添加预览流)? (捕获应该继续)。
UPD。也许有可能捕获到AVI文件的末尾?如果是这样,我可以在状态2停止图形,向其添加预览流(更改为状态3)并继续捕获到现有AVI文件的结尾(在上一步生成)。可能吗?
UPD2。我找到了一些黑客。当我想从状态3更改状态2时,我只是隐藏预览窗口。当我想回到状态3时,我会显示一个预览窗口。因此,我不再需要状态2,因为状态2只是状态3,隐藏了预览窗口!
答案 0 :(得分:3)
即使存在Dynamic Graph Building(另请参阅Dynamic Reconnection),但在大多数情况下它几乎没用:
在大多数DirectShow过滤器中,当图表主动传输数据时,无法重新连接引脚。应用程序必须在重新连接引脚之前停止图形。但是,某些过滤器确实在图形运行时支持引脚重新连接,这一过程称为动态重新连接。
您使用的过滤器很可能与动态重新连接或限制可扩展性不兼容。您可能有其他原因不使用此方法,例如如果在动态操作过程中无法承受延迟和丢失数据。
典型的解决方案包括两个图表:实时(捕获,预览演示)和录制。您在两者之间传递数据以使工作同步。您可能想要阅读图形桥接和GMFBridge。
您可能还想阅读有关此主题的相关问题: