使用异步读取器按帧编号查找
[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
异步读取器对象可用于在 ASF 文件中查找视频流的帧数。 若要使用基于帧的查找,必须在读取器中加载的文件按帧编制索引。 可以为每个单独的视频流编制索引。 若要确定流是否已按帧编制索引,可以通过调用 IWMHeaderInfo::GetAttributeByName 在文件的标头中检查 g_wszWMNumberOfFrames 属性。
若要使用异步读取器按帧编号在 ASF 文件中查找数据,请执行以下步骤。
- 通过调用 IWMReader::QueryInterface 获取指向读取器对象的 IWMReaderAdvanced3 接口的指针。
- 通过调用 IWMReaderAdvanced3::StartAtPosition 设置起始帧编号和持续时间。 必须指定帧索引视频流的流号。 读取器会将其余输出同步到指定流的指定帧的呈现时间,并开始传送输出样本。
- 像在 实现 IWMReaderCallback::OnSample 方法时一样处理示例。
相关主题