【发布时间】:2017-11-01 16:55:49
【问题描述】:
为了了解 Hololens 的 Microsoft 示例 MixedRemoteViewCompositor,我一直在阅读 Polinger 的书“开发 Microsoft 媒体基础应用程序”。文本的一个关键概念是媒体基础组件是连接到称为拓扑的图形结构的 COM 对象。但是,示例代码适用于通用 Windows 平台 (UWP),并且代码中的任何位置都不存在“拓扑”一词。代码中不存在创建拓扑的调用。
所以我的问题是 UWP 应用程序是否使用媒体基础中的拓扑,如果不是,如何将媒体基础 COM 组件连接在一起以形成处理管道?示例代码有源和汇,但我不知道它们是如何连接的。
斯科特
【问题讨论】:
-
Media Foundation 有两种架构:
Topology和Reader/Writer-Topology基于 COM 技术 - 它允许创建 COM 媒体对象并注入到Topology处理管道中。Reader/Writer隐藏管道。 UWP 是为宽类型平台开发的,并且对在不同平台上使用相同的要求很高 - 因此,UWP 限制了对 OS 的低级元素的访问 - COM 是低级元素。在 UWP 上Reader/Writer仅适用于 MF 架构 - 它允许配置媒体文件/流读取器、媒体文件/流写入器,但不允许使用拓扑。 -
那么是否可以将媒体基础转换 (MFT) 与 UWP 架构一起使用?
-
是的。如果您想使用 IMFTransform 接口添加您的组件 - 那么您必须使用具有 IMFSourceReaderEx 接口的组件 - 它具有 AddTransformForStream 方法 - 将转换(例如音频或视频效果)添加到流中。