Windows Media Format SDK 接口

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

以下两个表描述了此 SDK 支持的接口,并显示了它们与对象和其他接口的关系。

接口 描述
INSNetSourceCreator 创建可用于缓存密码和查找代理服务器的管理网络源 插件
INSSBuffer 控制存储在缓冲区对象中的缓冲区。 此接口用于向和从此 SDK 中的方法传递示例。
INSSBuffer2 继承自 INSSBuffer。 此接口的新方法已取消记录,因为它们未在此版本中实现。
INSSBuffer3 设置和检索缓冲区属性。 缓冲区属性用于在传入或传递自此 SDK 的方法时,使用缓冲区传达信息。
INSSBuffer4 枚举缓冲区属性。
IReferenceClock 提供对标准参考时钟的访问。
IRMGetLicense 执行客户端许可证获取。
IWMAddressAccess 控制编写器网络接收器对象上的 IP 访问列表。
IWMAddressAccess2 IWMAddressAccess 接口添加 IPv6 支持。
IWMAuthorizer 提供对证书的访问。
IWMBackupRestoreProps 设置、检索和删除 IWMLicenseBackupIWMLicenseRestore 接口所需的属性。
IWMBandwidthSharing 配置带宽共享对象。 带宽共享对象由配置文件对象创建,用于指定流,无论其单个比特率如何,它们之间永远不会使用超过特定数量的带宽。
IWMClientConnections 检索有关连接到编写器网络接收器对象的客户端的信息。
IWMClientConnections2 检索有关连接到编写器网络接收器对象的客户端的高级信息。
IWMCodecAMVideoAccelerator 由 Windows Media 解码器 DMO 公开并由媒体播放器的源筛选器调用,以设置启用 DirectX VA 以解码 Windows Media 视频内容所需的各种连接。
IWMCodecInfo 检索系统上加载的受支持音频编解码器的可用格式。 在配置文件中创建音频流时使用这些格式。
IWMCodecInfo2 提供对编解码器名称和每个编解码器支持的格式说明的访问。
IWMCodecInfo3 提供对编解码器属性和音频格式属性的访问。 还可用于查询编解码器以获取功能支持。
IWMCodecVideoAccelerator 不支持此接口。 请改用 IWMCodecAMVideoAccelerator
IWMCredentialCallback 获取用户的凭据,并检查他们是否有权访问远程站点。
IWMDeviceRegistration 管理设备注册数据库,其中包含连接到本地网络的数字媒体播放设备的条目。
IWMDRMEditor 使应用程序无需获得受保护内容的许可证即可检查 DRM 标头属性。
IWMDRMMessageParser 分析从数字媒体播放设备接收的消息。
IWMDRMReader 获取许可证、配置 DRM 属性并个性化客户端。
IWMDRMReader2 读取使用 Windows Media Rights Manager 10 SDK 创建的许可证。
IWMDRMReader3 通过提供获取许可证批准的保护系统的方法,启用内容听录。
IWMDRMTranscryptor 将受 DRM 保护的内容转换为可以使用 Windows Media DRM 10 for Network Devices 安全传输协议发送的数据流。
IWMDRMWriter 从编写器对象提供许可证创建功能。
IWMDRMWriter2 将编写器配置为接受包含加密数据的流示例,以便流式传输到支持适用于网络设备的 Windows Media DRM 10 的设备。
IWMDRMWriter3 允许写入用于导入受保护内容的加密流示例。
IWMGetSecureChannel 一个通信方使用此接口获取另一方的 IWMSecureChannel 接口。
IWMHeaderInfo 管理标头信息,例如元数据、 标记等。
IWMHeaderInfo2 提供对用于创建文件的编解码器信息的访问权限。
IWMHeaderInfo3 提供属性语言支持和其他高级元数据功能。
IWMImageInfo 从文件检索 ID3v2“APIC”帧。 应避免使用此接口,转而使用 WM/Picture 属性。
IWMIndexer 提供手动为文件编制索引的方法。
IWMIndexer2 提供索引配置选项。
IWMInputMediaProps 管理输入媒体流的属性。
IWMIStreamProps 读取 IStream 对象的属性。
IWMLanguageList 管理 ASF 文件的语言列表。
IWMLicenseBackup 备份许可证,通常使许可证可以还原到另一台计算机上。
IWMLicenseRestore 还原许可证。
IWMMediaProps 提供对流的媒体类型结构的访问权限。
IWMMetadataEditor 为元数据编辑提供文件管理。
IWMMetadataEditor2 提供了一种改进的方法,用于打开供元数据编辑器使用的文件。
IWMMutualExclusion 配置互斥对象。 互斥对象由配置文件对象创建,用于指定一组互斥流。
IWMMutualExclusion2 添加对相互排除的分组和命名支持。
IWMOutputMediaProps 管理输出流的属性。
IWMPacketSize 管理 ASF 文件中数据包的最大大小。
IWMPacketSize2 管理 ASF 文件中数据包的最小大小。
IWMPlayerHook 由使用 DirectX 视频加速 (DirectX VA) 的播放器应用程序实现。 它将视频流中的样本传递到已启用 DirectX VA 的视频卡进行解压缩时,可以执行特定于应用程序的处理。
IWMPlayerTimestampHook 在玩家或玩家源筛选器上实现。 它使筛选器能够在将视频样本传送到下游之前修改视频样本上的时间戳。
IWMProfile 管理配置文件的创建和编辑。 配置文件描述文件的格式,例如流类型、比特率等。 大多数应用程序使用现有配置文件,不需要实现此接口。
IWMProfile2 提供对配置文件 ID 的访问权限。
IWMProfile3 提供用于处理带宽共享、流优先级以及配置文件支持的其他高级功能的方法。
IWMProfileManager 管理配置文件的加载和保存。
IWMProfileManager2 管理配置文件管理器对象使用的系统配置文件的版本号。
IWMProfileManagerLanguage 管理枚举系统配置文件的语言。
IWMPropertyVault 提供用于管理属性的标准化接口。
IWMProximityDetection 验证本地网络上的设备。 必须先验证设备,然后才能使用适用于网络设备的 Windows Media DRM 10 安全传输协议接收数据。
IWMReader 管理 ASF 文件的异步读取。
IWMReaderAccelerator 在 WM Reader 对象上实现。 它由玩家或玩家源筛选器调用,以从解码器 DMO 获取接口。
IWMReaderAdvanced 提供读取器的高级功能,例如用户提供的时钟、缓冲区分配、返回统计信息和接收流选择通知。
IWMReaderAdvanced2 为现有读取器对象提供其他高级方法范围。
IWMReaderAdvanced3 为读取器对象提供其他高级方法。
IWMReaderAdvanced4 支持语言选择和其他高级阅读功能。
IWMReaderAdvanced5 使你能够将玩家挂钩回调接口与读取器对象相关联。
IWMReaderAdvanced6 启用示例保护。
IWMReaderAllocatorEx IWMReaderCallbackAdvanced 接口的 AllocateForOutputAllocateForStream 方法提供扩展的替代项。
IWMReaderCallback 由应用程序实现,用于提供有关当前读取操作的示例和状态信息。
IWMReaderCallbackAdvanced (可选)由应用程序实现,为现有读取器回调对象提供高级功能。
IWMReaderNetworkConfig 管理网络配置设置。
IWMReaderNetworkConfig2 提供其他网络配置功能。
IWMReaderPlaylistBurn 确认将播放列表中的文件复制到 CD 的 DRM 权限。
IWMReaderStreamClock 用于设置和取消流时钟上的计时器,以及检索流时钟的当前值。
IWMReaderTimecode 提供有关文件中 SMPTE 时间代码的信息。
IWMReaderTypeNegotiation 提供可用于测试流输出属性的某些更改是否正常工作的单个方法。
IWMRegisterCallback 使应用程序能够从接收器对象获取状态消息。
IWMRegisteredDevice 提供对设备注册数据库中条目中的数据的访问权限。
IWMSBufferAllocator 提供在服务器上分配缓冲区的方法。
IWMSecureChannel 提供允许两个 DLL 相互验证和执行安全通信的方法
IWMSInternalAdminNetSource 管理密码缓存和代理位置。
IWMSInternalAdminNetSource2 提供比 IWMSInternalAdminNetSource 更安全的密码缓存方法。
IWMSInternalAdminNetSource3 提供了一种改进的方法来查找代理服务器。
IWMStatusCallback 由应用程序实现,以响应此 SDK 的多个对象的状态。
IWMStreamConfig 管理在配置文件中使用的流的配置。
IWMStreamConfig2 提供其他流操作方法。
IWMStreamConfig3 管理流的语言信息。
IWMStreamList 管理定义流之间的关系的各种对象。
IWMStreamPrioritization 提供配置流优先顺序对象的方法。
IWMSyncReader 提供通过同步调用读取文件的功能。
IWMSyncReader2 向同步读取器添加 SMPTE 时间代码支持。
IWMVideoMediaProps 管理视频流的属性。
IWMWatermarkInfo 提供对可用水印的访问。
IWMWriter 用作编写 ASF 文件的main接口。
IWMWriterAdvanced 为现有编写器对象提供高级功能。
IWMWriterAdvanced2 提供一些高级功能,特别是用于处理无隔行扫描的视频。
IWMWriterAdvanced3 提供详细编写器统计信息的方法。
IWMWriterFileSink 管理文件接收器对象。
IWMWriterFileSink2 提供文件接收器对象的扩展管理。
IWMWriterFileSink3 进一步扩展文件接收器对象的功能。
IWMWriterNetworkSink 管理网络接收器对象。
IWMWriterPostView 管理编写器中示例的输出。 用于在编码过程中验证文件的编码内容。
IWMWriterPostViewCallback 由应用程序实现,用于从编写器接收 postview 示例。
IWMWriterPreprocess 管理多通道编码的设置。
IWMWriterPushSink 管理推送接收器对象。
IWMWriterSink 管理来自编写器接口的原始 Windows Media Format 输入。 用作其他编写器接收器接口的基本接口。

 

下表显示了每个接口的继承以及可从中获取实例的对象。

接口 继承自 对象
INSNetSourceCreator IUnknown 源创建者对象
INSSBuffer IUnknown 缓冲区对象
INSSBuffer2 INSSBuffer 缓冲区对象
INSSBuffer3 INSSBuffer2 缓冲区对象
INSSBuffer4 INSSBuffer3 缓冲区对象
IReferenceClock IUnknown 读取器对象
IWMAddressAccess IUnknown 编写器网络接收器对象
IWMAddressAccess2 IWMAddressAccess 编写器网络接收器对象
IWMBackupRestoreProps IUnknown 备份还原器对象
IWMBandwidthSharing IWMStreamList 带宽共享对象
IWMClientConnections IUnknown 编写器网络接收器对象
IWMClientConnections2 IWMClientConnections 编写器网络接收器对象
IWMCodecAMVideoAccelerator IUnknown Windows Media 解码器 DMO
IWMCodecInfo IUnknown 配置文件管理器对象
IWMCodecInfo2 IWMCodecInfo 配置文件管理器对象
IWMCodecInfo3 IWMCodecInfo2 配置文件管理器对象
IWMCredentialCallback IUnknown 由应用程序实现
IWMDRMEditor IUnknown 元数据编辑器对象
IWMDRMReader IUnknown 读取器对象
IWMDRMWriter IUnknown 编写器对象
IWMHeaderInfo IUnknown 元数据编辑器对象读取器对象同步读取器对象编写器对象
IWMHeaderInfo2 IWMHeaderInfo 元数据编辑器对象读取器对象同步读取器对象编写器对象
IWMHeaderInfo3 IWMHeaderInfo2 元数据编辑器对象读取器对象同步读取器对象编写器对象
IWMImageInfo IUnknown 元数据编辑器对象读取器对象同步读取器对象
IWMIndexer IUnknown 索引器对象
IWMIndexer2 IWMIndexer 索引器对象
IWMInputMediaProps IWMMediaProps 输入媒体属性对象
IWMIStreamProps IUnknown 流对象 (IStream)
IWMLanguageList IUnknown Profile 对象元数据编辑器对象读取器对象同步读取器对象编写器对象
IWMLicenseBackup IUnknown 备份还原程序对象
IWMLicenseRestore IUnknown 备份还原程序对象
IWMMediaProps IUnknown 输入媒体属性对象输出媒体属性对象流配置对象
IWMMetadataEditor IUnknown 元数据编辑器对象
IWMMetadataEditor2 IWMMetadataEditor 元数据编辑器对象
IWMMutualExclusion IWMStreamList 相互排除对象
IWMMutualExclusion2 IWMMutualExclusion 相互排除对象
IWMOutputMediaProps IUnknown 输出媒体属性对象
IWMPacketSize IUnknown 配置文件管理器对象
IWMPacketSize2 IWMPacketSize 配置文件管理器对象
IWMPlayerHook IUnknown 由应用程序实现
IWMPlayerTimestampHook IUnknown 源筛选器
IWMProfile IUnknown Profile 对象
IWMProfile2 IWMProfile Profile 对象
IWMProfile3 IWMProfile2 Profile 对象
IWMProfileManager IUnknown 配置文件管理器对象
IWMProfileManager2 IWMProfileManager 配置文件管理器对象
IWMProfileManagerLanguage IUnknown 配置文件管理器对象
IWMPropertyVault IUnknown 流配置对象
IWMReader IUnknown 读取器对象
IWMReaderAccelerator IUnknown 读取器对象
IWMReaderAdvanced IUnknown 读取器对象
IWMReaderAdvanced2 IWMReaderAdvanced 读取器对象
IWMReaderAdvanced3 IWMReaderAdvanced2 读取器对象
IWMReaderAdvanced4 IWMReaderAdvanced3 读取器对象
IWMReaderAllocatorEx IUnknown 由应用程序实现
IWMReaderCallback IWMStatusCallback 由应用程序实现
IWMReaderCallbackAdvanced IUnknown 由应用程序实现
IWMReaderNetworkConfig IUnknown 读取器对象
IWMReaderNetworkConfig2 IWMReaderNetworkConfig 读取器对象
IWMReaderStreamClock IUnknown 读取器对象
IWMReaderTimecode IUnknown 读取器对象
IWMReaderTypeNegotiation IUnknown 读取器对象
IWMRegisterCallback IUnknown 由应用程序实现
IWMSBufferAllocator IUnknown 由网络服务器实现
IWMSInternalAdminNetSource IUnknown 网络源管理员对象
IWMSInternalAdminNetSource2 IWMSInternalAdminNetSource 网络源管理员对象
IWMSInternalAdminNetSource3 IWMSInternalAdminNetSource2 网络源管理员对象
IWMStatusCallback IUnknown 由应用程序实现
IWMStreamConfig IUnknown 流配置对象
IWMStreamConfig2 IWMStreamConfig 流配置对象
IWMStreamConfig3 IWMStreamConfig2 流配置对象
IWMStreamList IUnknown 带宽共享对象相互排除对象
IWMStreamPrioritization IUnknown 流优先级对象
IWMSyncReader IUnknown 同步读取器对象
IWMSyncReader2 IWMSyncReader 同步读取器对象
IWMVideoMediaProps IWMMediaProps 流配置对象
IWMWatermarkInfo IUnknown 编写器对象
IWMWriter IUnknown 编写器对象
IWMWriterAdvanced IUnknown 编写器对象
IWMWriterAdvanced2 IWMWriterAdvanced 编写器对象
IWMWriterAdvanced3 IWMWriterAdvanced2 编写器对象
IWMWriterFileSink IWMWriterSink 编写器文件接收器对象
IWMWriterFileSink2 IWMWriterFileSink 编写器文件接收器对象
IWMWriterFileSink3 IWMWriterFileSink2 编写器文件接收器对象
IWMWriterNetworkSink IWMWriterSink 编写器网络接收器对象
IWMWriterPostView IUnknown 编写器对象
IWMWriterPostViewCallback IUnknown 由应用程序实现
IWMWriterPreprocess IUnknown 编写器对象
IWMWriterPushSink IWMWriterSink 编写器推送接收器对象
IWMWriterSink IUnknown 编写器文件接收器对象编写器网络接收器对象编写器推送接收器对象

 

备注

此 SDK 中每个接口的接口标识符是接口的名称,前面是“IID_”。 例如, IWMReaderAdvanced 接口的标识符IID_IWMReaderAdvanced。 若要获取指向读取器对象的 IWMReaderAdvanced 接口的指针,请使用以下代码,其中 pReader 是指向 IWMReader 接口的 指针:

IWMReaderAdvanced *pReaderAdvanced;
hr = pReader->QueryInterface(IID_IWMReaderAdvanced,
                             (LPVOID*) &pReaderAdvanced);

对象

编程参考