Windows媒体格式 SDK 示例应用程序

随此 SDK 一起提供的示例代码采用 Microsoft Visual Studio 2005 的项目形式。 大多数示例都采用 C++,但 ManagedWMFSDKWrapper 和 ManagedMetadataEdit 需要 C# 。

除非已安装Windows媒体格式 SDK 或Windows播放器 SDK,否则这些示例将不起作用。

每个示例的使用情况信息包含在每个示例目录中readme.txt文件中。

Samle 说明
AudioPlayer 播放Windows媒体文件,包括 DRM 保护的文件。 它通过 GUI 控制,命令包括播放、暂停、查找和停止。 它可以使用 WMVNetWrite 示例) 播放从 Internet 读取的本地文件或文件 (包括这些输出到 Internet。
[!注意]
此示例的 DRM 部分在基于 x64 的 Windows 版本中不受支持。

DRMHeader DRMHeader 是一个控制台应用程序,它使用元数据编辑器的 IWMDRMEditor 接口读取文件的 DRM 属性,而无需链接到 DRM 静态库。
[!注意]
基于 x64 的 Windows 版本不支持此示例。

DRMShow DRMShow 是一个控制台应用程序,它演示如何使用 IWMDRMReader::GetDRMProperty 方法读取Windows媒体文件的 DRM 属性。此示例演示如何使用 IWMDRMReader::GetDRMProperty 方法和可从 DRM 读取器检索的属性。 它不演示如何获取受 DRM 保护的内容的许可证。 此示例需要 DRM 存根库 WMStubDRM.lib 才能生成。
[!注意]
基于 x64 的 Windows 版本不支持此示例。

从 Microsoft 获取 WMStubDRM.lib 时,库将分配应用程序安全级别。 如果收到的库的安全级别不足以播放受保护的文件,则此示例将显示错误。
DirectShowInterop/DSCopy 使用 DirectShow WM ASF 编写器筛选器将一个或多个文件转码到 ASF 文件。 输入文件可以是DirectShow支持的任何压缩或未压缩格式。
DirectShowInterop/DSPlay 此示例是支持 DRM 的交互式音频/视频媒体文件播放器。 它使用DirectShow的 WM ASF 读取器筛选器播放WINDOWS媒体文件, (ASF、WMA、WMV) 不使用 DRM 保护和使用 DRM 的文件级别为 100 或更低级别。 有关详细信息,请参阅示例目录中readme.txt。
DirectShowInterop/DSSeekFm 此示例演示如何使用DirectShow WM ASF 读取器筛选器在DirectShow筛选器图中播放 ASF 内容,以及如何在 Windows 媒体格式 SDK 中使用寻求支持的帧。
Managed/WMFSDKWrapper 此托管程序集充当托管代码示例用于访问此 SDK 的某些元数据接口的包装器。
Managed/MetadataEdit 此 C# 应用程序可用于查看和编辑Windows媒体文件中的元数据。
MetaDataEdit 这是托管 MetadataEdit 应用程序的 C++ 版本。
ReadFromStream 此控制台应用程序示例演示如何使用 WMReader 从 IStream 读取数据。 IStream 源已实现为使用Windows媒体格式 (WMA/WMV/ASF) 的文件。
[!注意]
此示例不演示如何处理 WMReader 中传出的媒体示例。 有关如何处理音频/视频或其他类型的媒体示例的示例,请参阅Windows媒体格式 SDK 附带的其他示例(例如 AudioPlayer)。

UncompAVIToWMV 此控制台应用程序示例演示了将 AVI 文件压缩到 WMV 文件所需的代码。 它演示如何合并来自多个 AVI 文件的音频和视频流的示例,以及如何将这些流合并到类似的流中,或基于源流配置文件创建新流。 它还演示如何创建任意流、执行多通道编码、添加 SMPTE 时间代码并应用 DRM 版本 1 保护。
WMGenProfile/exe 此示例已从 7.1 版本更新。 它现在是 MFC 对话框应用程序。 WMGenProfile 示例演示了 WMGenProfile 静态库的使用。 它还充当用于创建配置文件的工具。 此工具适用于熟悉Windows媒体格式的开发人员。 UI 尚未针对用户体验进行测试,不作为有关如何向用户显示此信息的建议。
WMGenProfile/lib GenProfile 库示例演示了配置文件的创建。 它演示如何为各种流类型创建媒体类型和流, (音频、视频、脚本、图像、文件传输和 Web) 。 它不演示如何使用系统配置文件或如何将系统配置文件转换为指定Windows媒体音频和视频 9 系列编解码器的配置文件。
WMProp 此控制台应用程序演示如何使用元数据编辑器对象和读取器中的配置文件信息检索属性。
WMStats 此控制台应用程序显示读取器和编写器统计信息。 还可以在一台计算机上同时使用 WMStats 的多个实例。 "开始"菜单一个实例作为服务器将流发送到网络,然后将第二个实例作为客户端运行,以验证服务器是否正确流式传输。
WMSyncReader 此控制台应用程序示例演示如何使用 IWMSyncReader 读取媒体文件,而无需创建任何额外的线程或使用回调。 实现了以下功能:读取压缩或解压缩的示例
基于时间的查找
基于框架的查找
IStream 派生源
WMVAppend 此控制台应用程序采用两个Windows媒体文件进行输入,并尝试创建包含第一个后跟第二个内容的输出文件。 此示例比较了两个输入文件的配置文件,以确保它们足以追加它们。 如果这不是这种情况,将显示一条错误消息。 例如,当一个文件是音频,第二个是音频视频文件时,或者当两个音频文件具有不同的比特率时,将发生错误消息。该示例接受 VBR) 源 (可变比特率。 但是,在比较两个 VBR 源的配置文件时,该样本会忽略平均比特率差异,因为即使使用同一配置文件创建了两个 VBR 流,也会有不同的平均比特率。 WMVAppend 无法比较不受约束的基于比特率的 VBR 流的峰值比特率,或者基于质量的 VBR 流的质量级别,因为源文件中不存在此信息。 因此,用户有责任确保使用同一配置文件创建两个源文件。 否则,可以创建无效的内容。
WMVCopy 此示例演示复制 WMV 文件所需的代码。 它演示如何读取和写入压缩的示例、读取标头属性和脚本,以及修改标头属性。
WMVNetWrite 此控制台应用程序演示如何通过 Internet 流式传输Windows媒体文件。 此示例需要指定端口,然后可以使用播放器播放文件。
WMVRecompress 此控制台应用程序演示如何重新压缩 WMV 文件。 它演示了读取未压缩的示例、编写未压缩的示例,以及执行多通道编码、多通道输出和智能重新压缩。

关于Windows媒体格式 SDK

编程指南