如何在没有拓扑的情况下将 Windows Media Foundation 与 UWP 一起使用

How to use Windows Media Foundation with UWP without a topology

我一直在阅读 Polinger 书 "Developing Microsoft Media Foundation Applications" 以了解 Hololens 的 Microsoft 示例 MixedRemoteViewCompositor。文本的一个关键概念是媒体基础组件是 COM 对象,它们连接到称为拓扑的图形结构中。但是,示例代码适用于通用 Windows 平台 (UWP),代码中的任何地方都不存在 "topology" 一词。代码中不存在创建拓扑的调用。

所以我的问题是 UWP 应用程序是否使用媒体基础中的拓扑,如果不是,如何将媒体基础 COM 组件连接在一起以形成处理管道?示例代码有源和汇,但我不知道它们是如何连接的。

斯科特

So my question is whether UWP applications use a topology in Media Foundation

首先,IMFTopologyNode UWP 中不允许使用接口。

其次,包含IMFTopologyNodeIMFTopology接口在UWP中是不允许的。

第三,通过IMFTopology创建媒体管道的IMFMediaSession接口在UWP中是不允许的,

第四,MFCreateMediaSession - "C" 创建 IMFMediaSession 的函数在 UWP 中是不允许的。

not how does one connect the Media Foundation COM components together to form a processing pipeline? - 它是在 MF 组件后面用 IMFSourceReader and IMFSinkWriter 完成的 - 开发人员 不能 可以直接访问那些处理管道。

So is it possible to use Media Foundation Transforms (MFT) with the UWP architecture? 是的。 如果您想添加带有 IMFTransform 接口的组件 - 那么您必须使用带有 IMFSourceReaderEx interface - it has method AddTransformForStream 的组件 - Adds a transform, such as an audio or video effect, to a stream.

关于 How create Source Reader 你可以在那里阅读 - Source Reader