Reader 对象

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

读取器对象从媒体文件读取数据示例。 读取器对象当前支持使用高级系统格式(ASF)文件结构和 MP3 文件的文件。 读取器对象提供的数据已取消压缩,并且已准备好默认呈现,但如果需要,可以交付样本,而无需解压缩。 示例从读取器对象异步传送;必须设置回调函数才能接收它们。 若要同步播放 ASF 文件,请使用同步读取器对象。 读取器和同步读取器都不呈现任何数据。 必须提供自己的呈现例程才能显示从文件检索到的媒体。

当文件包含可使用读取器对象支持的编解码器解码的编码媒体时,可以控制未压缩输出的格式。 若要更改流的解压缩输出的格式,必须检索该流的默认输出媒体属性对象,对其进行更改,并将其重新分配给读取器中的流。 输出媒体属性对象属于读取器对象,仅应使用 IWMReader::GetOutputProps 方法创建。

读取器对象由 WMCreateReader函数创建,该函数设置指向 IWMReader 接口的指针。 可以通过调用 QueryInterface 方法获取读取器对象的其他接口。

读取器对象支持以下接口。

接口 描述
IReferenceClock 提供对读取器使用的系统时钟的访问权限。
IWMDRMReader 管理许可证获取、DRM 属性和客户端个性化。
IWMDRMReader2 提供对使用输出保护级别(OPL)指定权限的许可证的访问权限。
IWMHeaderInfo 设置和检索标头信息,包括元数据、标记和脚本数据。
IWMHeaderInfo2 检索有关用于对文件中内容进行编码的编解码器的信息。 继承 IWMHeaderInfo的所有方法。
IWMHeaderInfo3 支持大型属性大小、重复属性名称和多种语言支持。 继承 IWMHeaderInfoIWMHeaderInfo2的所有方法。
IWMPacketSize 检索读取器中加载的文件中最大数据包的大小。
IWMPacketSize2 检索读取器中加载的文件中最小数据包的大小。
IWMProfile 提供对读取器中加载的文件的配置文件信息的访问权限。
IWMProfile2 检索与配置文件关联的全局唯一标识符(如果存在)。 继承 IWMProfile的所有方法。
IWMProfile3 支持配置文件中的带宽共享和流式处理优先级信息。 继承 IWMProfileIWMProfile2的所有方法。
IWMReader 提供基本的文件读取功能,包括打开、关闭、启动、暂停、恢复、停止和获取和设置输出属性等作。
IWMReaderAccelerator 与 DirectX 视频加速通信。
IWMReaderAdvanced 提供读取器的高级功能,例如用户提供的时钟、缓冲区分配、返回统计信息和流选择通知。
IWMReaderAdvanced2 为现有读取器对象提供其他高级方法范围。 继承 IWMReaderAdvanced的所有方法。
IWMReaderAdvanced3 提供高级查找和流式处理控制。 继承 IWMReaderAdvancedIWMReaderAdvanced2的所有方法。
IWMReaderAdvanced4 提供高级读取器选项,包括多种语言支持。 继承 IWMReaderAdvancedIWMReaderAdvanced2IWMReaderAdvanced3的所有方法。
IWMReaderNetworkConfig 控制网络配置设置。
IWMReaderNetworkConfig2 提供对高级网络配置设置的访问权限。 继承 IWMReaderNetworkConfig的所有方法。
IWMReaderStreamClock 设置和取消流时钟上的计时器,并检索指定流时钟的当前值。
IWMReaderTimecode 提供有关读取器中加载的文件中的 SMPTE 时间代码范围的信息。
IWMReaderTypeNegotiation 测试流输出属性的更改是否正常工作。

 

可以在应用程序中实现以下回调接口来跟踪读取器对象的进度。

接口 描述
IWMCredentialCallback 获取用户的凭据,并检查他们是否有权访问远程站点。
IWMReaderAllocatorEx 提供 IWMReaderCallbackAdvanced 接口的 AllocateForOutputAllocateForStream 方法的扩展替代方法。
IWMReaderCallback 开始IWMReader的 Open 方法提供回调方法。
IWMReaderCallbackAdvanced IWMReaderAdvanced 接口的方法提供回调方法。
IWMStatusCallback 必须向主机应用程序传达状态信息时必需。

 

对象

读取 ASF 文件

同步读取器对象