问题是构建一个支持三种状态的捕获图:
- 仅预览
- 仅捕获为 AVI 文件
- Combine
我已经建立了这样的图表:
该图对应于状态 3。现在,如果我想更改状态 2,我会删除预览流并得到如下图:
想象一下我运行图表并开始捕获。现在我想回到状态 3。如何在不停止图形的情况下执行此操作(添加预览流)? (捕获应该继续)。
UPD。也许可以捕获到 AVI 文件的末尾?如果是这样,我可以将图形停止在状态 2,向其添加预览流(更改为状态 3)并继续捕获到现有 AVI 文件(在上一步生成)的末尾。是否可以?
UPD2。我发现了一些黑客。当我想从状态 3 更改为状态 2 时,我只需隐藏预览窗口。当我想返回状态 3 时,我会显示一个预览窗口。因此,我不再需要状态 2,因为状态 2 只是带有隐藏预览窗口的状态 3!
虽然动态图构建存在(另见动态重连),在大多数情况下它没什么用:
在大多数 DirectShow 过滤器中,当图形正在主动传输数据时,引脚无法重新连接。应用程序必须在重新连接引脚之前停止图形。但是,某些过滤器确实支持在图形运行时重新连接引脚,这一过程称为动态重新连接。
您使用的过滤器很可能与动态重新连接不兼容,或限制可扩展性。您可能有其他原因不使用此方法,例如如果您无法承受动态操作过程中的延迟和数据丢失。
典型的解决方案涉及两个图表:实时(捕获、预览演示)和录制。您可以在两者之间传递数据以使工作同步。您可能想阅读图桥接和GMF桥.
您可能还想阅读有关此主题的很多问题:
- 仅 Directshow 预览以及使用单个图表捕获和预览
- DirectShow 捕获到多个文件
- 在 directshow 中以编程方式更改录制文件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)