0

使用 .NET Windows Media Player 库,我能够以编程方式获取和更改 Windows Media Player 的各种文件属性(如用户评级)。我希望使用同一个库通过Player.openPlayer(url)调用来控制(播放、停止、下一个等)Windows Media Player 实例。理论上,这通过 Player.controls 对象应该是非常可能的,但是当我去访问它们时,没有一个控件可用。除了控件对象之外,我几乎可以使用所有播放器属性/方法/事件。这是一些示例代码来说明我尝试过的内容:

import clr
clr.AddReferenceToFile( "Interop.WMPLib.dll" )
from Interop.WMPLib import WindowsMediaPlayerClass
wmp = WindowsMediaPlayerClass()
wmp.openPlayer(r"C:\Users\Public\Music\Sample Music\Kalimba.mp3")

这很好用,但是当我执行以下操作时:

print wmp.controls.isAvailable("play").ToString()
print wmp.controls.isAvailable("pause").ToString()
print wmp.controls.isAvailable("stop").ToString()
...

每个控件我都错了。为什么这些控件不适用于我的(简单)应用程序?我可能会以错误的方式解决这个问题吗?我使用的是 WMP 12,所以它应该不仅仅是兼容的。我真的不想使用其他 API,但我愿意在这一点上尝试任何东西。

以下是参考文档:http: //msdn.microsoft.com/en-us/library/dd564034%28v=vs.85%29.aspx

编辑: 快速修复暂时保留,但我还没有找到实际的解决方案。

4

1 回答 1

0

尝试

print wmp.controls.get_isAvailable("play");
print wmp.controls.get_isAvailable("stop");
etc.

但请记住,在您将文件加载到所述 WMP 控件之前,这些控件将不可用。

首先设置wmp.URL为您要播放的文件的路径,然后,当它完成加载时,只需调用wmp.controls.play();. 您可以侦听一个OpenStateChange事件以确保它是否已加载。

于 2012-04-18T10:38:46.550 回答