ASF 媒体接收器

ASF 媒体接收器是编码管道中的最终组件,使应用程序能够写入 ASF 文件。

Media Foundation 提供两种类型的 ASF 媒体接收器:

  • ASF 文件接收器 用于将 ASF 媒体数据存档到文件中。
  • ASF 流式处理接收器 用于在可以跨网络流式传输的字节流中写入 ASF 内容。

ASF 媒体接收器包含一个或多个流接收器,表示要为输出 ASF 文件中的每个流写入的数据。 对于在 Windows Vista 上运行的编码应用程序,必须通过创建和配置 ASF 媒体接收器,然后将其添加到拓扑来手动配置编码拓扑。 在 Windows 7 中,如果使用快速转码对象创建拓扑,则不会直接创建媒体接收器,并且应用程序不会调用媒体接收器或任何流接收器上的任何方法。 快速转码对象实例化所需的媒体接收器,并在返回对调用方应用程序的引用之前将其添加到拓扑。 但是,对于快速转码对象,存在一些限制,具体取决于编码的类型。

ASF 媒体接收器对象模型

ASF 媒体接收器实现 IMFMediaSink 接口,并公开以下接口。 应用程序可以通过在用于生成输出样本的 ASF 媒体接收器上调用 QueryInterface 来获取对这些接口的引用。

接口 描述
IMFMediaSink 所有媒体接收器都是必需的。
IMFFinalizableMediaSink 由 ASF 文件接收器实现,该接收器将生成的媒体内容写入文件。 可以使用此接口上的方法刷新数据并更新最终输出文件的 ASF 标头对象。
IMFClockStateSink 从演示文稿时钟接收状态更改通知。
IMFASFContentInfo ASF ContentInfo 对象是一个 WMContainer 级别对象,主要存储 ASF 标头对象信息。 这用于创建 ASF 媒体接收器。
IMFMetadata 用于描述 ASF 文件的元数据。
IMFMetadataProvider 检索整个演示文稿的元数据集合,或检索演示文稿中的一个流。

 

ASF 文件接收器

ASF 文件接收器是媒体基础提供的 IMFMediaSink 实现,应用程序可用于将 ASF 媒体数据存档到文件中。

如果使用管道层对象来写入新的 ASF 文件,则需要在文件接收器或其任何流接收器上创建、配置和调用方法。 配置文件接收器后,可以将其添加到编码管道。

下面是使用 ASF 文件接收器的一般步骤:

  1. 在进程内或进程外创建文件接收器。
  2. 使用所有流、编码属性和元数据信息配置文件接收器。
  3. 通过枚举流接收器或跟踪接收器中的流数,将文件接收器与输出拓扑节点相关联。

以下主题包含有关使用 ASF 文件接收器的详细信息:

管道层 ASF 组件

媒体基础 中的 ASF 支持