高级拓扑生成
本部分介绍用于生成拓扑的一些高级技术。 如果想要更好地控制发送到媒体会话的拓扑,可以使用这些技术。
由于这些技术适用于超出标准拓扑加载程序提供的功能的方案,因此许多详细信息将取决于应用程序的特定要求。 因此,本部分围绕较小的子任务(而不是完整的端到端方案)松散地进行组织。
典型的播放应用程序遵循以下步骤:
- 应用程序生成部分拓扑,并在媒体会话中将其排队。
- 媒体会话调用拓扑加载程序来解析拓扑。
如果想要超越拓扑加载程序的功能,有三种常规方法:
构建完整的拓扑。 在媒体会话上将拓扑排队时,使用 MFSESSION_SETTOPOLOGY_NORESOLUTION 标志调用 IMFMediaSession::SetTopology 。 此标志阻止媒体会话尝试解析拓扑。
直接调用拓扑加载程序来解析拓扑。 然后,可以在媒体会话中对其进行排队之前修改完整拓扑。
实现自定义拓扑加载程序。 使用此方法可将部分拓扑排队,但媒体会话会调用自定义加载程序,而不是标准 Media Foundation 实现。 此方法的一个优点是可以在受保护的环境中执行自定义拓扑生成。 (在这种情况下,拓扑加载程序必须是受信任的组件。有关详细信息,请参阅 受保护的媒体路径。)
本部分包含以下主题。
主题 | 说明 |
---|---|
自定义拓扑加载程序 | 如何为媒体会话提供 IMFTopoLoader 的自定义实现。 |
将输出节点绑定到媒体接收器 | 如果在媒体会话之外使用拓扑加载程序,如何准备拓扑中的输出节点。 |
将解码器添加到拓扑 | 如何手动选择解码器并将其添加到拓扑。 |
相关主题