将 Windows 媒体播放器 控件与 Microsoft Visual Studio 配合使用

[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

可以通过 Visual Studio 中的“工具箱”将 Windows 媒体播放器 9 系列或更高版本的 ActiveX 控件添加到 .NET Framework 应用程序。

添加Windows 媒体播放器控件

创建新项目之前,请确保计算机上安装了最新版本的 Windows 媒体播放器 和 Windows 媒体播放器 SDK。

启动 Visual Studio,然后创建新项目。

在 Visual Studio 中,打开“工具箱”。

如果工具箱的“组件”部分中未显示Windows 媒体播放器,请执行以下操作:

  1. 在“工具箱”中右键单击,然后选择“ 选择项”。 这将打开 “自定义工具箱 ”对话框。

  2. 在“COM 组件”选项卡上,选择“Windows 媒体播放器”。

    如果列表中未显示Windows 媒体播放器,请单击“浏览”,然后打开应位于 Windows\System32 文件夹中Wmp.dll。

  3. 单击“确定”。 Windows 媒体播放器控件将放置在当前“工具箱”选项卡上。

现在可以在“工具箱”中选择Windows 媒体播放器并将其添加到窗体中。

Visual Studio 为Windows 媒体播放器控件提供默认名称,例如“axWindowsMediaPlayer1”。 你可能想要将名称更改为更容易记住的名称,例如“Player”。

从工具箱中添加 Windows 媒体播放器 控件还会添加对 Visual Studio AxWMPLib 和 WMPLib 创建的两个库的引用。 可以在“引用”下的解决方案资源管理器中找到它们。

若要更轻松地使用 Player 命名空间中的对象,应将 命名空间包含在文件的 using 或 imports 指令中,如下所示:

using WMPLib;
imports WMPLib

指令可确保可以在不完全限定其名称的情况下引用 Player 对象。

注意

Windows 媒体播放器控件是 AxWMPLib 命名空间中的 AxWindowsMediaPlayer 对象。 但是, AxWindowsMediaPlayer 类使用 WMPLib 命名空间中的数据类型、接口和其他元素。

 

配置控件的可见性

首次将Windows 媒体播放器控件添加到窗体时,该控件将可见。 如果不想在应用程序中使用 Player 的可见图像,请通过设置以下任一属性来隐藏默认 Player:

属性
uiMode “invisible” (请参阅 Player.uiMode.)
Visible “false”
Size.Width 0
Size.Height 0

 

在窗体设计器中选择Windows 媒体播放器控件时,可以在代码中或在“属性”窗口中设置这些属性。

控件的对象模型兼容性

Windows 媒体播放器 控件的对象模型在.NET Framework与非托管代码和脚本中的对象模型基本相同。 但是,元素的公开方式存在差异:

  • 大多数对象在其基础 COM 接口的名称下公开。 例如, Playlist 对象公开为 IWMPPlaylist
  • 某些接口具有更高版本。 例如,IWMPMedia2 和 IWMPMedia3 中为 IWMPMedia 提供了其他功能。 如果将对象声明为 IWMPMedia,则通常有权访问接口的所有版本的功能。 但是,IntelliSense® 不会识别更高版本接口的方法或属性,并且 Visual Basic .NET 编辑器不会自动更正大写。 若要充分利用 IntelliSense 和 Visual Studio 的其他功能,请使用最新版本的接口(如 IWMPMedia3)声明 对象。
  • 没有 (C#) 索引属性或 visual Basic .NET) (默认属性。 例如,若要检索 Playlist.item,必须在 C# 中调用 IWMPlaylist.get_Item 访问器方法或在 Visual Basic .NET 中检索 IWMPlayist.Item 属性。
  • 由于 Windows 媒体播放器 Controls 属性与每个控件公开的 Controls 属性之间的命名冲突,因此此属性的 Player 版本在 ActiveX 控件的上下文中称为 CtlControls。 (但是,以编程方式而不是 ActiveX 控件创建 Player 时,情况并非如此。)

使用 Visual Studio 中的对象浏览器查找 AxWMPLibWMPLib 命名空间中方法和对象的正确 API 名称。

分发应用程序

分发应用程序时,请确保在应用程序文件夹中安装AxInterop.WMPLib.dll和Interop.WMPLib.dll。 还需要确保在用户的计算机上安装所需的 Windows 媒体播放器 版本。

以编程方式创建Windows 媒体播放器控件

在 C# 解决方案中嵌入Windows 媒体播放器控件

在 Visual Basic .NET 解决方案中嵌入 Windows 媒体播放器 控件