读取器对象

[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 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 检索与配置文件关联的 (GUID) (如果有)的全局唯一标识符。 继承 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 IWMReaderStartOpen 方法提供回调方法。
IWMReaderCallbackAdvanced IWMReaderAdvanced 接口的方法提供回调方法。
IWMStatusCallback 当状态信息必须传达给主机应用程序时是必需的。

 

对象

读取 ASF 文件

同步读取器对象