使用文件接收器

[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

在正常情况下,只需使用 IWMWriter::SetOutputFilename 方法向编写器传递输出文件名,编写器对象会自动将文件写入磁盘。 在这种情况下,编写器实际上是在创建和控制一个编写器文件接收器对象,该对象处理将文件写入磁盘。 编写器文件接收器对象控制从编写器对象到单个文件的数据流。

可以创建自己的文件接收器,以更好地控制接收器写入文件的方式。 还可以访问编写器为响应 对 SetOutputFilename 的调用而创建的默认编写器文件接收器。

创建文件接收器

若要创建文件接收器并将其添加到编写器,请执行以下步骤。

  1. 通过调用 WMCreateWriterFileSink 函数创建新的接收器。
  2. 通过调用 IWMWriterFileSink::Open 提供接收器的文件名。
  3. 通过调用 IWMWriterAdvanced::AddSink 将文件接收器添加到编写器。
  4. 以常规方式执行写作。
  5. 写入完成后,接收器将自动关闭文件。

停止和启动文件接收器

写入操作开始后,可以通过调用 IWMWriterFileSink2::Stop 停止写入文件接收器。

你希望停止写入接收器的可能原因有很多。 例如,如果要从实时源进行录制,则可能只对某些内容感兴趣。

可以通过调用 IWMWriterFileSink2::Start 继续写入文件接收器。 StopStart 都使用演示时间来控制命令的执行时间。 可以使用 IWMWriterFileSink3 方法更好地控制开始和停止时间。

关闭文件接收器

通常,文件接收器会自动关闭。 如果已完成写入接收器,但写入其他接收器的操作仍在继续,则应显式关闭接收器以节省资源。 若要关闭文件接收器,请调用 IWMWriterFileSink2::Close

获取接收器统计信息

可以通过分别调用 IWMWriterFileSink2::GetFileSizeIWMWriterFileSink2::GetFileDuration 来获取打开接收器的文件大小和持续时间。

IWMWriterFileSink 接口

IWMWriterFileSink2 接口

IWMWriterFileSink3 接口

编写器文件接收器对象

编写 ASF 文件