使用.NET Windows Media Player库,我能够以编程方式获取和更改Windows Media Player的各种文件属性(如用户评级)。我希望使用相同的库通过Player.openPlayer(url)
调用来控制(播放,停止,接下来等)Windows Media Player实例。从理论上讲,这应该是通过Player.controls对象实现的,但是当我去访问它们时,没有一个控件可用。实际上除了控件对象之外,我可以使用所有Player属性/方法/事件。以下是一些示例代码,用于说明我尝试过的内容:
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
编辑:快速解决方案现在暂停,但我还没有找到实际的解决方案。
答案 0 :(得分:0)
试
print wmp.controls.get_isAvailable("play");
print wmp.controls.get_isAvailable("stop");
etc.
但请记住,在将文件加载到所述WMP控件之前,这些控件将不可用。
首先将wmp.URL
设置为您要播放的文件的路径,然后,在加载完成后,只需调用wmp.controls.play();
即可。您可以收听OpenStateChange
事件,以确定它是否已加载。