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 对象是主要存储 ASF 标头对象信息的 WMContainer 级别对象。 这用于创建 ASF 媒体接收器。 |
IMFMetadata | 用于描述 ASF 文件的元数据。 |
IMFMetadataProvider | 检索整个演示文稿或演示文稿中的一个流的元数据集合。 |
ASF 文件接收器
ASF 文件接收器是媒体基础提供的 IMFMediaSink 的实现,应用程序可以使用该实现将 ASF 媒体数据存档到文件中。
如果使用管道层对象写入新的 ASF 文件,则需要在文件接收器或其任何流接收器上创建、配置和调用方法。 配置文件接收器后,可以将其添加到编码管道。
下面是使用 ASF 文件接收器的常规步骤:
- 创建进程内或进程外的文件接收器。
- 使用所有流、编码属性和元数据信息配置文件接收器。
- 通过枚举流接收器或跟踪接收器中的流编号,将文件接收器与输出拓扑节点相关联。
以下主题包含有关使用 ASF 文件接收器的详细信息:
相关主题