科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Windows Media Player SDK 简介

Windows Media Player SDK 简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

了解如何更改 Windows Media Player 的外观和行为,如何将其嵌入基于 Web 或基于 Windows 的应用程序.......

作者:佚名 来源:yesky 2007年11月4日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
创建外观

  您可以使用 Windows Media Player 中的外观技术更改 Player 的外观,同时保持它的标准行为。Player 包含的外观便是该功能的体现。尽管这些外观使 Player 看起来迥然不同,但它们却都保留了 Play(播放)和 Pause(暂停)按钮、显示播放列表、返回到完整模式等基本功能。

  您还可以使用外观技术创建一个外观和行为与标准 Player 相差很大的应用程序。您可以随意在外观中添加各种各样的控件,使其执行自定义操作。要定义自定义操作,可以编写 JScript? 代码;您无需精通 Microsoft Visual C++? 或 Visual Basic 即可将外观技术用作编程平台。

  您可以将外观定义文件、图像文件和任何 Jscript 文件压缩到文件扩展名为 .wmz 的单个文件中。这是将外观提供给最终用户的标准方法。

  您还可以创建称作边框的特殊外观,它显示在完整模式下的 Windows Media Player 的 Now Playing(正在播放)功能中。您可以将边框、播放列表文件和数字媒体文件压缩到文件扩展名为 .wmd 的单个可下载文件中。当最终用户单击 .wmd 文件的链接时,Windows Media Player 将对包含的所有文件进行解压缩,将边框应用到 Now Playing(正在播放)功能,然后开始播放在播放列表文件中指定的内容。

  这种可下载文件功能尤其适用于向最终用户提供出色的娱乐或教育内容。它不要求最终用户进行任何安装,同时允许您进行广泛的自定义。

  创建插件

  Windows Media Player SDK 包含支持广泛扩展性的接口。要扩展 Player 的基本功能,可以编写借助于 DLL 文件的 COM 对象。

  SDK 包含一个可创建示例插件项目的 Visual C++ 向导。该项目包含编译和注册插件所需的代码和一个示例实现。运行向导后,您便可以将编程工作的重点放在实现插件所需的特定代码上。

  利用插件提供的扩展性,您可以将 Windows Media Player 用作提供和操作数字媒体内容的平台。插件有几种不同的类型,将在以下主题中进行讨论。

  可视化效果插件

  当 Player 处于完整模式或外观模式(取决于外观)时,可视化效果插件可在只播放音频内容时,向 Player 的 Now Playing(正在播放)功能添加有趣的动态图像。可视化效果的外观和动态运动基于正在播放的音乐并与之同步。

  将可视化效果作为 COM 对象实现。Player 每秒多次为当前选定的可视化效果引发事件。该事件包含以下数据:

  1、TimedLevel 结构,其中包括当前音频的频率和音量信息

  2、设备上下文句柄,用于指定绘图面

  3、RECT 结构,定义绘图面的大小

  在可视化效果对象中,实现处理此事件的 Render 方法。

  可以使用 Windows 图形设备接口 (GDI) 功能、Microsoft Direct3D? 或 DirectDraw? 功能等技术对图形进行可视化编程。

  在调用那些利用设备上下文的 GDI 函数时,Windows Media Player 插件向导生成的示例实现使用音频和音量数据(位于 TimedLevel 结构中)。可以修改或替换该实现,以生成所需的可视化效果。

  该向导可以编写用于编译自行注册的 COM DLL 的全部代码。要看到可视化效果,只需编译项目,然后运行 Windows Media Player 并选择新的可视化效果即可。

  用户界面插件

  Windows Media Player 为最终用户提供了各种信息和功能。但是,您可能需要提供自定义交互或自定义数据。使用用户界面插件可完成此项工作。

  Windows Media Player 的完整模式由许多区域组成,如 Now Playing(正在播放)功能和播放列表窗格。某些区域在默认状态下不可见,但最终用户可将其显示为可见。这些区域包括显示在 Now Playing(正在播放)功能底部的设置区域,以及显示在播放列表上方的元数据区域。

  用户界面插件分五种类型。其中三种类型显示在 Player 的不同区域中。在每个区域中,每次只能启用一个插件。

  1、显示插件。这些插件占据 Now Playing(正在播放)功能中的可视化效果显示区域。由于该区域通常很大,因此比较适合显示大量数据或复杂的交互控件集。

  2、设置插件。这些插件位于 Now Playing(正在播放)功能中可视化效果显示区域的下面。该区域包含图形均衡器、视频设置和其他用于配置播放或 Windows Media Player 外观的控件。设置插件比较适合添加相似的自定义功能,并使最终用户能够配置 Player 的外观或行为。

  3、元数据插件。这些插件位于播放列表上方的一个小区域。它们比较适合显示曲目、唱片集或播放列表的确切信息,同时也适用于简单控件或超链接。例如,Windows Media Player 包含一个元数据插件,它显示的封面图形是一个指向有关当前播放的唱片集和音乐家的更多信息的链接。

  有两类用户界面插件在 Windows Media Player 窗口中不显示。

  1、窗口插件。这些插件占用一个单独的窗口。它们比较适合显示信息或向最终用户提供从 Now Playing(正在播放)功能切换到其他功能或加载其他插件时始终存在的交互操作。

  2、背景插件。这些插件没有图形界面(除非像对待任何插件那样,为它们提供属性页)。它们比较适合不要求最终用户进行输入的自动服务。

  Windows Media Player 插件向导可以为每种类型的用户界面插件创建示例实现。您可以修改实现细节,以提供所需功能,编译项目,然后使用 Player 测试插件。该向导包括编译自行注册的 COM DLL 所需的所有代码,因而您可以在编码时将重点放在特殊需要上。

  DSP 插件

  数字信号处理 (DSP) 插件在播放过程中修改数字媒体流。使用 DSP 插件,可以将彩色视频更改为黑白视频,或使用反色使图像看起来像底片。还可在音频中添加颤音或回声效果。插件在处理数字媒体内容时将改变该内容的播放。DSP 插件与可视化效果插件不同,后者接收种子值形式的数字音频数据以生成视觉输出,但并不影响音频播放本身。

  除 Windows Media Player SDK 之外,编写 DSP 插件还需要 Microsoft DirectX? SDK。这些插件有一个明显特征,即实现由 DirectX SDK 提供的 IMediaObject 接口。

  当 DSP 插件安装在最终用户的计算机上并被激活时,Windows Media Player 在数据呈现之前将音频和视频数据传递给该插件。Player 分配输入缓冲区和输出缓冲区,并使插件能够对这两个缓冲区进行访问。必须实现 IMediaObject 接口的各种方法,以便从输入缓冲区读取数据,以适用于插件的任何方式对数据进行处理,然后将修改后的数据写入输出缓冲区。Windows Media Player 将呈现从输出缓冲区获取的数据。

  可以运行 Windows Media Player 插件向导创建 DSP 插件的示例实现。该示例实现 IMediaObject 接口,并实现一个称为 DoProcessOutput 的实用程序函数。很多情况下,只需使用 DSP 插件的特有代码修改此实用程序,并利用向导提供的所有其他代码。

  呈现插件

  使用 Windows Media Format SDK,可以向 Windows Media 文件中添加任何数据流。此数据流的格式不受限制,包括 Windows Media Player 默认情况下无法识别的格式。

  有两种方法可用来呈现包含此类数据流的 Windows Media 文件。

  1、可以编写一个自定义播放应用程序。这种情况下,除了包含用于呈现您的特有内容的代码之外,还必须包含用于提供标准音频、视频和脚本流的代码以及用于显示用户界面的代码。

  2、也可以为 Windows Media Player 编写一个呈现插件。这种情况下,仍须编写用于呈现您的特有内容的代码,但是可以利用 Player 的固有功能来呈现支持的流并提供最终用户已有所了解的用户界面。

  Windows Media Player 插件向导可以创建用于呈现插件的示例实现。该示例可实现呈现插件所需的许多接口,还可以实现一个称为 DoRendering 的实用程序函数。只需使用用于呈现特有流的代码修改此实用程序,并利用向导提供的所有其他代码。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章